Пример кода с чекбоксами
В этом примере основной дизайн хранится в файле design.py, все чекбоксы добавляются в вертикальный LayOut с именем ListPunkts.
import sys
from PyQt5 import QtWidgets
from PyQt5.QtWidgets import QCheckBox
import design
elements = ["первый пункт", "второй пункт", "третий пункт", "четвертый пункт"]
points = []
class ExampleApp(QtWidgets.QMainWindow, design.Ui_MainWindow):
def __init__(self):
super().__init__()
self.setupUi(self)
self.initUI()
def initUI(self):
self.resvButton.clicked.connect(self.sender)
self.sendButton.clicked.connect(self.reciver)
def sender(self):
global elements
global points
for elem in elements:
cb = QCheckBox(elem,self) #создаем чекбокс
cb.setCheckState(0) #снимаем с него галочку
self.ListPunkts.addWidget(cb) #добавляем чекбокс в вертикальный Layout
points.append(cb) #добавляем созданный чекбокс в глобальный список чекбоксов, чтобы потом с ним можно было работать
#cb.stateChanged.connect(self.list_addon) #можно запускать какую-нибудь функцию при изменении состояния чекбокса
def reciver(self):
global points
for point in points: #проходим по списку чекбоксов и проверяем, поставлена ли галочка
if point.isChecked():
print(point.text())
for point in points: #когда информацию получили, прячем все чекбоксы
point.hide()
points = [] #очищаем списко чекбоксов, чтобы новые к старым не добавлялись
# def list_addon(self,state):
# if state == 2:
# print('выбрано')
# else:
# print('не выбрано')
def main():
app = QtWidgets.QApplication(sys.argv)
window = ExampleApp()
window.show()
app.exec_()
if __name__ == '__main__':
main()
Last modified: Monday, 10 March 2025, 10:27 AM