2017-06-03 45 views
0

ユーザがボタンをクリックしたときに別のGUIを開くために起動時に実行されるGUIを作ろうとしています。だから私の起動ファイルに、私が持っている:別のGUIファイルからGUIファイルを開くPyQT5

class Startup(object): 
    def setup_ui(self, Dialog): 
     Dialog.setObjectName("Dialog") 
... 
     self.start_button = QtWidgets.QPushButton('', Dialog) 
     self.start_button.clicked.connect(self.start_program) 
... 
    def start_program(self): 
    # segmentation = QtWidgets.QApplication(sys.argv) 
    MainWindow = QtWidgets.QMainWindow() 
    ui = Ui_MainWindow() 
    ui.setupUi(MainWindow) 
    MainWindow.show() 
    # sys.exit(segmentation.exec_()) 
... 
if __name__ == "__main__": 
import sys 
app = QtWidgets.QApplication(sys.argv) 
Dialog = QtWidgets.QDialog() 
ui = Startup() 
ui.setup_ui(Dialog) 
Dialog.show() 
sys.exit(app.exec_()) 

私はこのようなルックスを起動しようとしているGUIのための私の主なファイル:

class Ui_MainWindow(object): 
    def setupUi(self, MainWindow): 
     font = QtGui.QFont("Times", 30, QtGui.QFont.Bold) 
     MainWindow.setObjectName("NBA Predictor") 
     MainWindow.resize(1150, 790) 
     self.centralwidget = QtWidgets.QWidget(MainWindow) 
... 

をただし、ユーザーが「開始」をクリックしたときボタンを押すと、メイン画面が.1秒間開き、すぐに終了します。私は正しいexitコマンドを持っていないことが問題だと思います。しかし、私はstart_program機能の行コメントを外した場合:私は、スタートボタンをクリックしたときに

# segmentation = QtWidgets.QApplication(sys.argv) 

# sys.exit(segmentation.exec_()) 

を、窓は両方のウィンドウクローズ後、第2のために開きます。何か案は?

答えて

0

これはPython GCのために起こります。 MainWindowの参照を保存する:

self.mainWindow = QtWidgets.QMainWindow() 
self.mainWindow.show() 
関連する問題