2017-04-18 3 views
1

Je suis actuellement un débutant dans l'apprentissage de python et essaye de faire une application avec Qt Designer. Dans tous les tutoriels que j'ai suivis après avoir converti le fichier .ui en .py en utilisant pyuic, il suffit de cliquer sur le nouveau .py et il affiche ce qu'ils ont fait dans le concepteur. Après avoir converti en utilisant pyuic et cliquez sur le fichier rien ne se passe. J'ai fait un exemple de projet Qt pour essayer de comprendre ce qui ne va pas, il est joint ci-dessous.Mon fichier converti pyuic ne s'ouvre pas

# -*- coding: utf-8 -*- 

# Form implementation generated from reading ui file 't.ui' 
# 
# Created by: PyQt5 UI code generator 5.8.2 # 
# WARNING! All changes made in this file will be lost! 

from PyQt5 import QtCore, QtGui, QtWidgets 

class Ui_MainWindow(object): 
def setupUi(self, MainWindow): 
    MainWindow.setObjectName("MainWindow") 
    MainWindow.resize(800, 600) 
    self.centralwidget = QtWidgets.QWidget(MainWindow) 
    self.centralwidget.setObjectName("centralwidget") 
    self.label = QtWidgets.QLabel(self.centralwidget) 
    self.label.setGeometry(QtCore.QRect(180, 450, 68, 19)) 
    self.label.setObjectName("label") 
    self.label_2 = QtWidgets.QLabel(self.centralwidget) 
    self.label_2.setGeometry(QtCore.QRect(230, 400, 68, 19)) 
    self.label_2.setObjectName("label_2") 
    self.label_3 = QtWidgets.QLabel(self.centralwidget) 
    self.label_3.setGeometry(QtCore.QRect(540, 190, 68, 19)) 
    self.label_3.setObjectName("label_3") 
    self.lineEdit = QtWidgets.QLineEdit(self.centralwidget) 
    self.lineEdit.setGeometry(QtCore.QRect(500, 430, 171, 41)) 
    self.lineEdit.setObjectName("lineEdit") 
    MainWindow.setCentralWidget(self.centralwidget) 
    self.statusbar = QtWidgets.QStatusBar(MainWindow) 
    self.statusbar.setObjectName("statusbar") 
    MainWindow.setStatusBar(self.statusbar) 

    self.retranslateUi(MainWindow) 
    QtCore.QMetaObject.connectSlotsByName(MainWindow) 

def retranslateUi(self, MainWindow): 
    _translate = QtCore.QCoreApplication.translate 
    MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow")) 
    self.label.setText(_translate("MainWindow", "TextLabel")) 
    self.label_2.setText(_translate("MainWindow", "TextLabel")) 
    self.label_3.setText(_translate("MainWindow", "TextLabel")) 

Toute aide est grandement appréciée, merci!

Répondre

1

Qt Designer est un outil qui sert la conception d'interface, pyuic convertit le .ui (conception) fichier à code python, pour l'utiliser, vous devez l'ajouter à une classe PyQt, cela dépend de la conception que vous avez fait, en Dans votre cas, la classe serait QMainWindow ou une classe qui en hériterait. Certains des moyens sont les suivants:

  • Solution 1

if __name__ == "__main__": 
    import sys 
    app = QtWidgets.QApplication(sys.argv) 
    w = QtWidgets.QMainWindow() 
    ui = Ui_MainWindow() 
    ui.setupUi(w) 
    w.show() 
    sys.exit(app.exec_()) 
  • Solution 2

class MainWindow(QtWidgets.QMainWindow, Ui_MainWindow): 
    def __init__(self, parent=None): 
     super(MainWindow, self).__init__(parent=parent) 
     self.setupUi(self) 


if __name__ == "__main__": 
    import sys 
    app = QtWidgets.QApplication(sys.argv) 
    w = MainWindow() 
    w.show() 
    sys.exit(app.exec_()) 

Conseil: Ajoutez l'une des solutions à votre fichier .py.

+0

Merci beaucoup qui a fonctionné parfaitement! –