2009-10-17 8 views
0

J'apprends python et Qt pour créer des applications de bureau graphiques. J'ai conçu l'interface utilisateur avec Qt Designer et converti le .ui en .py en utilisant pyuic, selon le tutoriel que je suis, je devrais être en mesure d'exécuter mon application. mais quand je le fais, une fenêtre de terminal s'ouvre et il dit:Apparemment mon application. fonctionne mais je ne vois rien

cd '/Users/andresacevedo/' && '/opt/local/bin/python2.6' '/Users/andresacevedo/aj.pyw' && echo Exit status: $? && exit 1 
Exit status: 0 
logout 

[Process completed] 

Est-ce que cela signifie que l'application. quitté sans erreurs? alors pourquoi je ne vois pas l'interface que j'ai conçue?

P.S. J'utilise OS X Snow Leopard

Merci,


Edit (Ceci est le code source de mon application.)

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

# Form implementation generated from reading ui file 'principal.ui' 
# 
# Created: Sat Oct 17 15:07:17 2009 
#  by: PyQt4 UI code generator 4.6 
# 
# WARNING! All changes made in this file will be lost! 

from PyQt4 import QtCore, QtGui 

class Ui_MainWindow(object): 
    def setupUi(self, MainWindow): 
     MainWindow.setObjectName("MainWindow") 
     MainWindow.resize(379, 330) 
     self.centralwidget = QtGui.QWidget(MainWindow) 
     self.centralwidget.setObjectName("centralwidget") 
     MainWindow.setCentralWidget(self.centralwidget) 
     self.menubar = QtGui.QMenuBar(MainWindow) 
     self.menubar.setGeometry(QtCore.QRect(0, 0, 379, 22)) 
     self.menubar.setObjectName("menubar") 
     self.menuMenu_1 = QtGui.QMenu(self.menubar) 
     self.menuMenu_1.setObjectName("menuMenu_1") 
     MainWindow.setMenuBar(self.menubar) 
     self.statusbar = QtGui.QStatusBar(MainWindow) 
     self.statusbar.setObjectName("statusbar") 
     MainWindow.setStatusBar(self.statusbar) 
     self.actionOpcion_1 = QtGui.QAction(MainWindow) 
     self.actionOpcion_1.setObjectName("actionOpcion_1") 
     self.menuMenu_1.addAction(self.actionOpcion_1) 
     self.menubar.addAction(self.menuMenu_1.menuAction()) 

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

    def retranslateUi(self, MainWindow): 
     MainWindow.setWindowTitle(QtGui.QApplication.translate("MainWindow", "MainWindow", None, QtGui.QApplication.UnicodeUTF8)) 
     self.menuMenu_1.setTitle(QtGui.QApplication.translate("MainWindow", "Menu 1", None, QtGui.QApplication.UnicodeUTF8)) 
     self.actionOpcion_1.setText(QtGui.QApplication.translate("MainWindow", "Opcion 1", None, QtGui.QApplication.UnicodeUTF8)) 
+0

Est-ce que 'aj' est le nom de votre application? Pourquoi a-t-il une extension .pyw? Vous ne travaillez pas sur Windows. –

+0

et pouvez-vous l'exécuter à partir d'une simple ligne de commande - par ex. /opt/local/bin/python2.6 aj.py – Mark

+0

ouais le nom est aj, j'ai changé l'extension c'était .py mais avec cette extension la même chose s'est produite. – MrAn3

Répondre

1

Le problème est que votre code python est simplement définir une classe, mais n'a pas de programme principal qui invoque la classe ou fait apparaître une fenêtre par QT.

Il semble un peu inhabituel que votre classe Ui_MainWindow ne soit pas réellement une sous-classe de QMainWindow; ce n'est pas un widget lui-même, mais il configure simplement la MainWindow qui lui est passée. Mais je pense que cela peut encore fonctionner, avec quelque chose comme le code (non testé) ci-dessous.

import sys 
from PyQt4 import Qt 

# (define class Ui_MainWindow here...) 

if __name__=="__main__": 

    app=Qt.QApplication(sys.argv) 
    mywin = Qt.QMainWindow() 
    myui = Ui_MainWindow(mywin) 
    myui.setupUI(mywin) 

    app.connect(app, Qt.SIGNAL("lastWindowClosed()"), 
       app, Qt.SLOT("quit()")) 
    mywin.show() 

    app.exec_() 
+0

Exemple Qt3, son code est Qt4. –

1

Je fais des questions très débutants, bien parce que je suis un débutant PyQt ... ce qui se passait était que j'ai appelé pyuic sans l'attribut -x, de sorte que le code crée simplement l'interface utilisateur, mais pas code pour l'exécuter, de toute façon votre aide était très précieuse.

0

Le code que vous obtenez de Qt Designer est seulement une classe avec un ensemble de widgets. Ce n'est pas une application. Voir le PyQt manual pour savoir comment utiliser le code Designer dans vos applications. Je suggère de lire d'abord un tutoriel Qt, d'écrire d'abord une application "Bonjour tout le monde", et seulement ensuite d'écrire des applications qui utilisent des formulaires Designer.

Questions connexes