pyQt - 如何基于QGroupBox进行控件选择

1 投票
1 回答
936 浏览
提问于 2025-04-16 10:19

在我的应用程序中,

我有三个相同的QGroupBox,每个里面都有一些按钮。

我想给这些按钮起一样的名字,并且通过QGroupBox的名字来访问它们。

这样做可以吗?

QGroupBox_one.button_export
QGroupBox_one.button_import

QGroupBox_two.button_export
QGroupBox_two.button_import

这样我就可以写一个方法,把QGroupBox作为参数,这样配置按钮会更简单。

谢谢。

1 个回答

1

我觉得一个简单明了的方法就是创建一个新的类(MyQGroupBoxes),这个类里面包含你需要的按钮和配置的方法。

from PyQt4 import QtGui

class MyQGroupBoxes(QtGui.QGroupBox):
    def __init__(self, parent):
        QtGui.QGroupBox.__init__(self, parent)

        self.button_export = QtGui.QPushButton("Export", self)
        self.button_import = QtGui.QPushButton("Import", self)

        layout = QtGui.QVBoxLayout(self)
        self.setLayout(layout)

        layout.addWidget(self.button_export)
        layout.addWidget(self.button_import)

    def config_export(self):
        # config your button
        pass

    def config_import(self):
        # config your button
        pass

if __name__ == "__main__":

    app = QtGui.QApplication(sys.argv)

    my_box1 = MyQGroupBoxes(None)
    my_box2 = MyQGroupBoxes(None)

    my_boxes = [my_box1, my_box2]

    # Config all the boxes
    for my_box in my_boxes:
        my_box.config_export()
        my_box.config_import()

        my_box.show()

    app.exec_()

撰写回答