【发布时间】:2017-02-14 14:45:51
【问题描述】:
在example 之后构建,我如何传递/访问更多属性,然后是 QCheckBox 的“状态”?在这种情况下,我希望构建一个更动态的函数,该函数可用于多个按钮并将所有状态保存在一个字典中。
类似的东西(我主要是在寻找 'objectName' 的正确名称,因为它在 'ILCheckbox_changed' 定义中与 'state' 一起使用,也许更一般地说,我如何找到我可以通过的其他属性)
import sys
from PyQt4.QtGui import *
from PyQt4.QtCore import *
class SelectionWindow(QMainWindow):
def __init__(self, parent=None):
super(SelectionWindow, self).__init__()
self.ILCheck = False
ILCheckbox = QCheckBox(self)
ILCheckbox.setCheckState(Qt.Unchecked)
self.check_box_dict = {}
ILCheckbox.stateChanged.connect(self.ILCheckbox_changed)
MainLayout = QGridLayout()
MainLayout.addWidget(ILCheckbox, 0, 0, 1, 1)
self.setLayout(MainLayout)
def ILCheckbox_changed(self, state, objectName):
self.ILCheck = (state == Qt.Checked)
print(self.ILCheck)
self.check_box_dict[objectName] = self.ILCheck
if __name__ == '__main__':
app = QApplication(sys.argv)
window = SelectionWindow()
window.show()
sys.exit(app.exec_())
【问题讨论】:
-
我实际上只是发现只有状态通过了,或者,我会寻找一些方法来例如传递具有所有属性的特定 CheckBox,例如 { ILCheckbox.stateChanged.connect(self.ILCheckbox_changed(ILCheckbox)) [...] def ILCheckbox_changed(self, check_box): print(check_box.objectName()) }
标签: python pyqt pyqt4 qcheckbox