2017-04-02 5 views
0

QtDesignerで作成した.uiファイルから2つの.pyファイルを作成しました。 1つはプログラムのメインウィンドウで、もう1つはユーザーが情報を入力できるウィジェットで、評価ウィジェットと呼んでいます。Pythonでは、QtDesignerで作成された.uiファイルから作成された.pyファイルを使用して、メインウィンドウのボタンをクリックして新しいウィンドウを開くにはどうすればよいですか?

メインウィンドウに「btn_StartNew」というボタンがあります。これはウィジェットウィンドウを開いてユーザーが新しい評価を開始できるようにするためのものです。私はメインウィンドウを開いて、 "評価"ウィジェットを開く "btn_StartNew"ボタンに関数を追加することに問題があります。

私が今持っている私は、コードを実行すると、メインウィンドウと同じウィンドウ内での評価ウィジェットの両方を開くコード:wid_MainとUi_wid_Mainは、メインウィンドウのファイルとメインウィンドウクラスです

import sys 
from PyQt4 import QtCore, QtGui 
from wid_Main import Ui_wid_Main 
from wid_Eval_v2 import Ui_wid_Eval 

class Win_Eval(QtGui.QWidget): 
    def __init__(self, parent=None): 
     super(Win_Eval, self).__init__(parent) 

     self.ui=Ui_wid_Eval() 
     self.ui.setupUi(self)  


class Win_Main(QtGui.QMainWindow): 
    def __init__(self, parent=None): 
     super(Win_Main, self).__init__(parent) 

     self.ui=Ui_wid_Main() 
     self.ui.setupUi(self) 

     #RUN "start new eval" button 
     self.ui.btn_StartNew.clicked.connect(self.btn_StartNew_click) 
     self.dialog = Win_Eval(self) 

    def btn_StartNew_click(self): 
     self.dialog.show() 


def main(): 
    app = QtGui.QApplication(sys.argv) 
    main = Win_Main() 
    main.show() 
    sys.exit(app.exec_()) 


if __name__ == '__main__': 
    main() 

それぞれ、 wid_Eval_v2とUi_wid_Evalは、それぞれ評価ウィジェットファイルとクラスです。

ご協力いただければ幸いです。あなたが変更する必要があり

答えて

0

self.dialog = Win_Eval(self) 

self.dialog = Win_Eval() 
+0

にありがとうございました。それは完璧に働いた。 –

+0

私の答えが役に立ったら、それを正しいものとしてマークしてください – eyllanesc

関連する問題