1

ボタンをクリックしたときにウィンドウ (QWidget) を開こうとしています。私の問題は、何を試してもボタンをクリックしても2番目のウィンドウが表示されないことです。2 つのウィンドウは、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)

ここで何が欠けていますか? ありがとう。

4

1 に答える 1

0

確かではありませんが、2 つのランダムな考え:

に print ステートメントを追加するとon_btn_clicked、ボタンをクリックしたときに何かが表示されますか? これにより、イベント トリガーの問題であるかどうかが診断されます。

setupUI(parent)コマンドを に変更すると機能しますsetupUI(self)か?

于 2012-07-23T04:39:18.880 に答える