Python / Qt设计师:在没有自我的情况下使用QPushButton

时间:2016-05-17 15:21:40

标签: python qt

我有一个QPushButton,在我的MainWindow中称为'StartButton'。 Button的名称,位置和其他所有内容都在Qt Designer中定义,所以我没有在我的程序中定义任何内容。

我想用self.StartButton.clicked....之类的内容替换QtGui.MyMainWindow.StartButton.clicked.... 这有可能吗?我应该写什么而不是self

class MainWindow(QtGui.QMainWindow, QtGui.QFileDialog):

   def __init__(self, parent=None):
       super(MainWindow, self).__init__(parent)
       uic.loadUi('MyMainWindow.ui', self)

       self.StartButton.clicked.connect(MainWindow.do_something())

1 个答案:

答案 0 :(得分:0)

您的行应为:

self.StartButton.clicked.connect(self.do_something)

我做了两处修改:

  • 首先,我删除了括号。您正在调用do_something,而不是将其作为参数传递给connect
  • 第二项更改是将MainWindow替换为self。我意识到你想要避免这种情况,但MainWindow仅仅是阶级。 self是您尝试连接的MainWindow的实例。

注意:您还继承了两个不同的小部件(QMainWindowQFileDialog),这导致Qt中的未定义行为。不幸的是,你必须选择其中一个或者其他东西会破坏。