在PyQt中,如何传递QCheckBox的不同属性

2024-05-18 23:32:52 发布

您现在位置:Python中文网/ 问答频道 /正文

example之后构建,如何传递/访问比QCheckBox的“state”更多的属性?在本例中,我希望构建一个更动态的函数,可以用于多个按钮,并将所有状态保存在dict中

类似这样的东西(我主要寻找'objectName'的正确名称,因为它在'ILCheckbox'u 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_())

Tags: fromimportself属性sysdictstatepyqt4
1条回答
网友
1楼 · 发布于 2024-05-18 23:32:52

在每个插槽中,您可以使用函数self.sender()访问发送信号的对象

def ILCheckbox_changed(self, state):
    self.ILCheck = (state == Qt.Checked)
    print(self.ILCheck)
    self.check_box_dict[self.sender()] = self.ILCheck
    print(self.check_box_dict)

相关问题 更多 >

    热门问题