PyQt:继承自PushButton

时间:2018-08-07 08:30:41

标签: python-3.x pyqt pyqt4

我正在做一个现有项目,而我对PyQt的经验很少,所以我不确定在这里制作一个最小的工作示例需要什么,也许有人可以帮助我。

代码中有一部分创建了QPushButton并将其添加到QGraphicsScene中,如下所示:

b = QPushButton('foo')
scene.addWidget(b)

我想用从b继承的类替换QPushButton,例如:

class Bar(QPushButton):
    def __init__(self):
        super(Bar, self).__init__('foo')

我相信以下内容应与第一个代码示例相同:

b = Bar()
scene.addWidget(b)

相反,代码在这里崩溃,到目前为止,我仍然无法弄清原因。有什么明显的地方我做错了吗?

1 个答案:

答案 0 :(得分:0)

尝试一下:

class Bar(QPushButton):
    def __init__(self, button):
        super(Bar, self).__init__()
        self.setText(button)
        self.clicked.connect(lambda: print("Press button"))

class Desktop(QMainWindow):
    def __init__(self):
        super(Desktop, self).__init__()
        self.centerWidget = QWidget(self)
        layout            = QVBoxLayout() 
        scene = QGraphicsScene()  
        view  = QGraphicsView(scene)

        b = Bar("Press me :)")

        scene.addWidget(b)
        layout.addWidget(view)
        self.centerWidget.setLayout(layout)
        self.setCentralWidget(self.centerWidget)

if __name__ == '__main__':
    app = QApplication(sys.argv)
    ex  = Desktop()
    ex.show()
    sys.exit(app.exec_())

enter image description here