信号连接在一个单独的类中

时间:2015-06-03 12:17:07

标签: python-2.7 pyqt refactoring signals-slots

我在重构代码方面遇到了一些问题。这是我的小例子:

    def __init__(self):
        super(Example, self).__init__()

        self.initUI()

    def initUI(self):

        but1 = QtGui.QPushButton("OK1")

        myUtils = ButtinUtils()
        but2 = myUtils.createButton(self.sender())

        hbox = QtGui.QFormLayout()
        hbox.addWidget(but1)
        hbox.addWidget(but2)

        self.setLayout(hbox)
        self.setGeometry(300, 300, 300, 150)
        self.setWindowTitle('Buttons')
        self.show()

        but1.clicked.connect(self.foo1)

    def foo1(self):
        print "foo1 called"

def main():
    app = QtGui.QApplication(sys.argv)
    ex = Example()
    sys.exit(app.exec_())

想法是在自己的班级中创建我的第二个按钮。我可以在主窗口上显示按钮,但如何才能获得连接

这是第二节课:

class ButtinUtils(object):
    def __init__(self):
        self.createButton()
        #b1 = QtGui.QPushButton("OK")

    def createButton(self):
         but2 = QtGui.QPushButton("OK2")
         return but2

将事件处理程序外包给这个util类会很棒。

有什么想法吗?

0 个答案:

没有答案