"本地QWidgets可见性切换"

2024-09-28 21:52:37 发布

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

我有一个模态QDialog,其中有几个小部件以网格布局排列。它有一个单选按钮组,如果按下某个按钮,该组将在某些小部件上切换可见性。此QDialog在本地声明。通过connected buttonClicked()函数访问小部件时遇到问题。有没有一种方法可以在不将所有小部件传递到函数或使它们成为基类的一部分的情况下实现这一点?你知道吗

def optionsdlg(self):               
    self.oWin = QDialog()
    self.oWin.setModal(True)
    self.oWin.setWindowTitle("Options")

    layout = QGridLayout()

    Button1 = QtGui.QRadioButton("Button1")
    Button2 = QtGui.QRadioButton("Button2")
    Button3 = QtGui.QRadioButton("Button3")
    lcbg = QtGui.QButtonGroup()
    lcbg.addButton(Button1, 0)
    lcbg.addButton(Button2, 1)
    lcbg.addButton(Button3, 2)
    lcbg.buttonClicked.connect(updateType(lcbg.checkedId()))
    scalingLabel = QtGui.QLabel("Scaling:")
    scalingLabel.setVisible(False)                              
    scalingLineEdit = QtGui.QLineEdit(str(self.scaling))
    scalingLineEdit.setVisible(False)
    offsetLabel = QtGui.QLabel("Offset:")
    offsetLabel.setVisible(False)
    offsetLineEdit = QtGui.QLineEdit(str(self.offset))
    offsetLineEdit.setVisible(False)

    self.oWin.setLayout(layout)

    self.oWin.exec_()

    def updateType(button):            
        if button == 0:
        elif button == 1:
        elif button == 2:
            scalingLabel.setVisible(True)
            scalingLineEdit.setVisible(True)
            offsetLabel.setVisible(True)
            offsetLineEdit.setVisible(True)

Tags: selffalsetrue部件buttonqtguibutton1qdialog