Python

Как да използваме отметката в PyQt?

Как да използваме отметката в PyQt?

Полето за отметка се използва за избор на нула или повече опции от много опции с помощта на графичния потребителски интерфейс. Формуляр с квадратче за отметка може да бъде създаден с помощта на 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_ ())

След изпълнението на скрипта ще се появи следният прозорец. Стойността по подразбиране за втория етикет е „Нищо не е избрано”И стойността на етикета ще бъде променена, когато дадено квадратче за отметка е отметнато или отменено от потребителя.


В следващия изход две отметки се проверяват от потребителя и стойността на втория етикет се променя на „Шоколад, паста”.

Заключение

Начинът за дефиниране на едно или няколко квадратчета за отметка и четене на стойностите на избраните отметки е обяснен в този урок, използвайки два прости примера. Групите от квадратчета за отметка могат да бъдат определени, за да изберете конкретно квадратче за отметка от група, която не е показана тук.

Как да заснемете и поточно предадете игралната си сесия на Linux
В миналото играта на игри се смяташе само за хоби, но с течение на времето игралната индустрия отбеляза огромен ръст по отношение на технологиите и бр...
Най-добрите игри за игра с ръчно проследяване
Oculus Quest наскоро представи страхотната идея за ръчно проследяване без контролери. С непрекъснато нарастващия брой игри и дейности, които изпълнява...
Как да покажете OSD наслагване в приложения на цял екран за Linux и игри
Играта на цял екран или използване на приложения в режим на цял екран без разсейване може да ви откъсне от съответната системна информация, видима в п...