簡體   English   中英

在PyQt中,如何傳遞QCheckBox的不同屬性

[英]In PyQt, how to pass different properties of QCheckBox

在下面的示例中建立 ,如何傳遞/訪問更多屬性,然后是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_())

在每個插槽中,您可以使用函數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)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM