启动代码后,我的窗口立即关闭

时间:2019-07-02 08:58:32

标签: python pyqt5 qgis

我正在尝试显示一个窗口,我想在其中输入一些参数,但是该窗口为空并在函数结束后立即关闭。

有人可以告诉我代码中的错误吗? (我尝试使用QApplication,但我的软件(QGIS)崩溃了)

这是我的代码:

import sys
import time
from PyQt5 import QtCore, QtWidgets
from PyQt5.QtWidgets import QMainWindow, QWidget, QLabel, QLineEdit
from PyQt5.QtWidgets import QPushButton
from PyQt5.QtCore import QSize    

class MainWindow(QMainWindow):
    def __init__(self):
        QMainWindow.__init__(self)
        #...
        self.setMinimumSize(QSize(320, 140))    
        self.setWindowTitle("Test") 
        #...
        self.label_1 = QLabel(self)
        self.label_1.setText('Numéro du département étudié :')
        self.line_1 = QLineEdit(self)
        #...
        self.line_1.move(100, 20)
        self.line_1.resize(200, 32)
        self.label_1.move(40, 20)
        #...
        self.label_2 = QLabel(self)
        self.label_2.setText('Nombre de points de départ :')
        self.line_2 = QLineEdit(self)
        #...
        self.line_2.move(100, 60)
        self.line_2.resize(200, 32)
        self.label_2.move(40, 60)
        #...
        self.label_3 = QLabel(self)
        self.label_3.setText("Chemin d'accès jusqu'a la liste des départements : (doit finir par un '/')")
        self.line_3 = QLineEdit(self)
        #...
        self.line_3.move(100, 100)
        self.line_3.resize(200, 32)
        self.label_3.move(40, 100)
        #...
        pybutton = QPushButton('Valider ma saisie', self)
        pybutton.clicked.connect(self.clickMethod)
        pybutton.clicked.connect(self.close)
        pybutton.resize(200,32)
        pybutton.move(80, 140)        
        #...
    def clickMethod(self):
        params = []
        params.append(self.line_1.text())
        params.append(self.line_2.text())
        params.append(self.line_3.text())
        #...
    def start(self):
        mainWin = MainWindow()
        mainWin.show()

1 个答案:

答案 0 :(得分:0)

在创建owner = Owner.objects.filter(nickname='hide').first() owner2 = Owner.objects.filter(nickname='john').first() owner.relationships_set.create(target_owner=owner2) 之前必须先创建QApplication

导入:

QWidget

创建应用程序:

from PyQt5.QtWidgets import QApplication

您的整个代码将是:

if __name__ == '__main__':
    app = QApplication(sys.argv)
    mw = MainWindow()
    mw.show()
    sys.exit(app.exec_())