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