pyQT4:如何从另一个窗口打开一个窗口

时间:2012-06-14 19:41:28

标签: window pyqt4 qt-designer

我正在尝试在单击按钮时打开一个窗口(QWidget)。我的问题是,无论我尝试过什么,当我点击按钮时第二个窗口都不显示。这两个窗口是使用QTDesigner创建的。 这是一个小片段,解释我正在尝试做什么:

from PyQt4.QtGui import *
from PyQt4.QtCore import *
from win1 import *
from win2 import *
import sys

class win1(QWidget, Ui_Win1):
  def __init__(self, parent = None):
    self.parent = parent
    QWidget.__init__(self)
    self.setupUi(parent)
    self.connect(self.pushButton, SIGNAL("clicked()"), self.on_btn_clicked)

  def on_btn_clicked(self):
    self.child = win2(self.parent)
    self.child.show()

class win2(QWidget, Ui_Win2):
  def __init__(self, parent = None):
    QWidget.__init__(self)
    self.setupUi(parent)

def main(args):
  app = QApplication(args)
  win = QWidget()
  a = win1(win)
  win.show()
  result = app.exec_()

if __name__=="__main__":
    main(sys.argv)

我在这里缺少什么? 感谢。

1 个答案:

答案 0 :(得分:0)

不确定,但两个随意的想法:

如果您向on_btn_clicked添加打印声明,当您点击按钮时是否看到任何内容?这将诊断它是否是一个触发问题的事件

如果您将setupUI(parent)命令更改为setupUI(self)

,它是否有效
相关问题