0

我对此很陌生,并且使用 Qt Designer 制作了一个非常简单的主窗口 ui。我在项目中想要的第一个功能是单击按钮以打开不同的窗口。

所以基本上我有autoGenUI.py使用 pyside-uic 生成的文件,其中包括

from PySide import QtCore, QtGui

class AutoGeneratedUI(object): 
    def setupUi(self, MainWindow):
        #Auto generated code

    def retranslateUi(self, MainWindow):
        #Auto generated code

当然,这一切都很好,因为 Qt 设计师做到了。然后我有我自己的 .py 文件,它基本上是我的应用程序的东西。

它看起来像这样:

import sys

from PySide.QtCore import *
from PySide.QtGui import *

from autoGenUI import *

class MyMainWindow(QtGui.QMainWindow):
    def __init__(self, parent=None):
        super(MyMainWindow, self).__init__(parent)
        self.ui = AutoGeneratedUI()
        self.ui.setupUi(self)

if __name__ == "__main__":
    app = QApplication(sys.argv)
    myMainWindow = MyMainWindow()
    myMainWindow.show()
    sys.exit(app.exec_())

我的按钮self.pushButton在自动生成的 python UI 中被调用。我想设计另一个窗口,然后调用那个窗口,但现在任何事情都可以。我只是不知道把代码放在哪里让我的按钮做某事。

我试图按照文档进行操作,但无法正常工作。

任何帮助是极大的赞赏。

谢谢

4

1 回答 1

1

需要将 pushButton 的 clicked 信号连接到 on_button_clicked() 等方法:

def __init__(self, parent=None):
    super(MyMainWindow, self).__init__(parent)
    self.ui = AutoGeneratedUI()
    self.ui.setupUi(self)
    # connect the clicked signal to on_button_clicked() method
    self.pushButton.clicked.connect(self.on_button_clicked) 

def on_button_clicked(self):
    print "button clicked"
    # here is the code to open a new window
于 2012-06-20T05:26:42.157 回答