pyqt5如何循环遍历控件名_Python + PyQt5:用循环+列的方法生成的QGroupBox,如何使用它们?...

本文介绍了如何在PyQt5中使用循环和列表动态创建包含QCheckBox的QGroupBox,并提出两个问题:如何设置默认选中第一个CheckBox以及如何在程序中捕获并处理CheckBox状态改变的事件。通过`self.cbx.setChecked(True)`可以设置默认选中项,而`self.cbx.stateChanged.connect(self.change_food)`连接信号与槽,通过`change_food`方法获取选中项。
摘要由CSDN通过智能技术生成

大家好。

我想请教一下,在PyQt里用循环+列的方法生成的包含QchckBox的QGroupBox,如何在程序中使用它们。

这是我的代码,和两个问题。

# -*- coding: utf-8 -*-

import sys

from PyQt5.QtCore import Qt

from PyQt5.QtWidgets import (QApplication, QCheckBox, QGridLayout, QGroupBox, QLabel, QPushButton, QRadioButton, QVBoxLayout, QWidget)

list_food = ["Pizza", "Taco", "Burrito"]

class Window(QWidget):

def __init__(self):

super(Window, self).__init__()

self.setWindowTitle("PyQt5 Group Box")

self.resize(400, 300)

self.groupBox = QGroupBox("Best Food")

# Checkbox layout

self.vbox = QVBoxLayout()

for i in range(len(list_food)):

self.cbx = QCheckBox(list_food[i])

self.vbox.addWidget(self.cbx)

self.cbx.stateChanged.connect(self.change_food)

#cbx1.setChecked(True) #问题一:如何默认选定列中的第一项?

self.lbl_result = QLabel("food now is/are: " + "")

self.vbox.addWidget(self.lbl_result)

self.groupBox.setLayout(self.vbox)

# vertical box layout

self.vlayout = QVBoxLayout()

self.vlayout.addWidget(self.groupBox)

self.vlayout.addStretch()

self.setLayout(self.vlayout)

def change_food(self):

self.lbl_result.setText("you changed food to: " + "") #问题二,如何读取选定的CheckBox?

if __name__ == '__main__':

app = QApplication(sys.argv)

clock = Window()

clock.show()

sys.exit(app.exec_())

总结一下我的问题是:

一,如何使某个CheckBox默认选定?

二,如何在在程序的其它地方,使用CheckBox的更改?

初学者的问题。谢谢各位!

(另:我在全网都没有找到我这样的问题?是我没找到还是因为太简单了?)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值