На этом шаге мы рассмотрим cоздание такого окна.
Окно для выбора цвета (рисунок 1) реализуется с помощью статического метода getColor() класса QColorDialog. Формат метода:
getColor([initial=white][, parent=None][, title=""][, options=0])
Параметр initial задает начальный цвет. В параметре parent указывается ссылка на родительское окно или значение None. Параметр title позволяет указать заголовок окна. В параметре options могут быть указаны следующие атрибуты (или их комбинация) класса QColorDialog:
Метод возвращает экземпляр класса QColor, представляющий выбранный цвет. Если пользователь нажмет кнопку Cancel, возвращенный экземпляр будет невалидным.
Пример:
# -*- coding: utf-8 -*- from PyQt5 import QtWidgets, QtGui import sys def on_clicked(): color = QtWidgets.QColorDialog.getColor(initial=QtGui.QColor("#ff0000"), parent=window, title="Окно выбора цвета", options=QtWidgets.QColorDialog.ShowAlphaChannel) if color.isValid(): print(color.red(), color.green(), color.blue(), color.alpha()) # Задание новго стиля для поля style = 'QLineEdit { background-color: rgb(' + str(color.red()) + ',' + str(color.green()) + ',' + str(color.blue()) + ') }' # Установка нового стиля lineEdit1.setStyleSheet(style) app = QtWidgets.QApplication(sys.argv) window = QtWidgets.QWidget() # Родительский компонент - окно window.setWindowTitle("Использование окна выбора цвета") # Назначаем обработчиками функции button1 = QtWidgets.QPushButton("Выбор цвета") lineEdit1 = QtWidgets.QLineEdit() grid = QtWidgets.QGridLayout() # Создаем сетку grid.addWidget(button1, 0, 0) # Добавляем компоненты grid.addWidget(lineEdit1, 0, 1) button1.clicked.connect(on_clicked) window.setLayout(grid) window.show() sys.exit(app.exec_())
Результат выполнения этого кода показан на рисунках 1, 2.
Рис.1. Окно выбора цвета
Рис.2. Результат выбора цвета
На следующем шаге мы рассмотрим окно для выбора шрифта.