Флажок используется для выбора нуля или более вариантов из многих вариантов с помощью графического пользовательского интерфейса. Форму с флажком можно создать с помощью QCheckBox класс в скрипте Python или с помощью QCheckBox виджет Qt Designer без написания сценария.
Когда форма с флажком создается с использованием QCheckBox класс, тогда stateChanged.соединять() функция вызывается, чтобы применить действие, выполненное пользователем. Если пользователь установил какой-либо параметр флажка, то значение QtCore.Qt.проверил будет правдой. Несколько флажков с одним выбором, например Radio Button, могут быть созданы с помощью QbuttonGroup класс.
В этом руководстве показано, как создать форму с флажком, написав скрипт Python.
Необходимые методы QCheckBox
QCheckBox класс имеет множество функций для выполнения различных типов задач с флажком. Некоторые наиболее часто используемые методы этого класса описаны ниже:
Название метода | Цель |
---|---|
проверено() | Возвращает логическое значение. Когда пользователь щелкает, чтобы установить флажок, он возвращает True, в противном случае он возвращает False. |
setChecked () | Используется для изменения состояния флажка. Установлено значение True, чтобы флажок был установлен, а значение False установлено, чтобы снять флажок. |
текст() | Используется для чтения метки флажка. |
setText () | Используется для установки метки флажка. |
isTriState () | Возвращает логическое значение. Он используется для проверки тройного состояния, чтобы узнать, включен ли флажок или нет. |
setTriState () | Он используется для включения третьего состояния флажка, который указывает нейтральное состояние. |
Создайте форму с флажком, используя класс QCheckBox:
Использование флажка показано в этом разделе на различных типах примеров. Использование одного флажка, как показано в первом примере, и использование нескольких флажков показано во втором примере.
Пример 1: Создание единого флажка
Способ создания единого флажка с помощью QCheckBox class и чтение входного значения флажка, предоставленного пользователем, показаны в этом примере. Необходимые модули импортируются в начале скрипта. Метка используется в поле вышеупомянутого флажка для предоставления информации пользователю. Если пользователь установит флажок, чтобы проверить, скрипт напечатает: «Ух ты! Ты любишь программировать», Иначе сценарий напечатает«о нет!, Ты не любишь программировать”.
# Импортировать необходимые модулиimport sys
из PyQt5 импортировать QtCore, QtWidgets
из PyQt5.QtWidgets импортируют QMainWindow, QCheckBox, QLabel, QVBoxLayout, QDesktopWidget
# Определить класс для создания формы с одним флажком
класс SingleCheckbox (QMainWindow):
def __init __ (сам):
супер().__в этом__()
# Создаем текст метки для пользователя
lb = QLabel ("Вы любите программировать?", себя)
фунт.setGeometry (20, 20, 200, 20)
фунт.переместить (20, 20)
# Создайте флажок с меткой
cb = QCheckBox ('Да', сам)
cb.stateChanged.подключиться (самостоятельно.Проверить ответ)
cb.переместить (20, 50)
# Установить вертикальную компоновку Qt
vbox = QVBoxLayout ()
vbox.addWidget (фунты)
vbox.addWidget (cb)
# Установить заголовок и размер окна
себя.setWindowTitle ('Форма с одним флажком')
себя.setGeometry (60, 60, 300, 100)
# Отобразить окно по центру экрана
победа = себя.frameGeometry ()
pos = QDesktopWidget ().availableGeometry ().центр()
выиграть.moveCenter (поз.)
себя.двигаться (выиграть.верхний левый())
себя.показывать()
# Определить функцию для проверки ввода пользователя
def Check_Answer (сам, состояние):
если состояние == QtCore.Qt.Проверено:
print ("Вау! Ты любишь программировать.")
еще:
print ("О нет!, Ты не любишь программировать.")
# Создать объект приложения и запустить приложение
app = QtWidgets.QApplication (sys.argv)
form = SingleCheckbox ()
приложение.exec ()
Следующее окно с флажком появится после выполнения скрипта.
В следующем выводе пользователь дважды установил флажок и один раз снял флажок.
Пример 2: Создание нескольких флажков
Метод создания нескольких флажков с помощью QCheckbox class и чтение нескольких значений нескольких флажков показаны в этом примере. В окно добавлены две метки и три флажка. Первая метка добавляется в начале флажков для предоставления информации пользователю, а вторая метка добавляется в конец флажков для отображения значений выбранных флажков или флажков.
# Импортировать необходимые модулиimport sys
из PyQt5.Импорт QtWidgets (QWidget, QCheckBox, QApplication, QVBoxLayout, QLabel, QDesktopWidget)
# Определить класс для создания формы с несколькими флажками
класс MultipleCheckbox (QWidget):
def __init __ (сам):
супер().__в этом__()
# Установить текст метки для пользователя
lb = QLabel ("Выберите ваши любимые блюда:", self)
фунт.setGeometry (20, 20, 100, 20)
фунт.переместить (20, 20)
# Создайте три флажка
cb1 = QCheckBox ('Шоколадный торт', self)
cb1.переместить (20, 70)
cb1.stateChanged.подключить (лямбда: сам.Выбранное_значение (cb1))
cb2 = QCheckBox ('Мороженое', self)
cb2.переместить (20, 90)
cb2.stateChanged.подключить (лямбда: сам.Выбранное_значение (cb2))
cb3 = QCheckBox ('Паста', сам)
cb3.переместить (20, 110)
cb3.stateChanged.подключить (лямбда: сам.Выбранное_значение (cb3))
себя.label = QLabel ('Ничего не выбрано')
себя.метка.переместить (20, 150)
# Установить вертикальную компоновку Qt
vbox = QVBoxLayout ()
vbox.addWidget (фунты)
vbox.addWidget (cb1)
vbox.addWidget (cb2)
vbox.addWidget (cb3)
vbox.addWidget (self.метка)
себя.setLayout (vbox)
себя.setWindowTitle ('Форма с несколькими флажками')
себя.setGeometry (60, 60, 350, 200)
себя.lblText = "
# Отобразить окно по центру экрана
победа = себя.frameGeometry ()
pos = QDesktopWidget ().availableGeometry ().центр()
выиграть.moveCenter (поз.)
себя.двигаться (выиграть.верхний левый())
себя.показывать()
# Определить функцию для чтения ввода пользователя
def Selected_Value (self, btn):
если я.lblText !знак равно
str = self.lblText
strArray = str.расколоть(' ,')
себя.lblText = "
для val в strArray:
если кстати.текст() != val:
если я.lblText == ":
себя.lblText = val
еще:
себя.lblText + = ',' + val
если кстати.isChecked () == True:
если я.lblText == ":
себя.lblText = btn.текст()
еще:
себя.lblText + = ',' + btn.текст()
еще:
если кстати.isChecked () == True:
если я.lblText == ":
себя.lblText = btn.текст()
еще:
себя.lblText + = ',' + btn.текст()
себя.метка.setText ('Вы выбрали \ n' + self.lblText)
# Создать объект приложения и запустить приложение
app = QApplication (sys.argv)
ex = MultipleCheckbox ()
sys.выход (приложение.exec_ ())
Следующее окно появится после выполнения скрипта. Значение по умолчанию для второй метки - «Ничего не выбрано»И значение метки будет изменено, когда любой флажок установлен или снят пользователем.
В следующих выходных данных два флажка отмечены пользователем, а значение второй метки изменено на «Шоколад, Паста”.
Заключение
Способ определения одного или нескольких флажков и чтения значений выбранных флажков был объяснен в этом руководстве на двух простых примерах. Группы флажков могут быть определены для выбора определенного флажка из группы, которая здесь не показана.