我正在学习python和Qt来创建图形桌面应用程序。我使用Qt Designer设计了UI并使用pyuic将.ui转换为.py,根据我正在关注的教程,我应该可以运行我的应用程序。但是当我这样做时,会打开一个终端窗口并显示:
cd '/Users/andresacevedo/' && '/opt/local/bin/python2.6' '/Users/andresacevedo/aj.pyw' && echo Exit status: $? && exit 1
Exit status: 0
logout
[Process completed]
这是否意味着应用程序。退出没有错误?那为什么我没有看到我设计的UI?
P.S。我正在使用OS X Snow leopard
谢谢,
编辑(这是我的应用的源代码。)
# -*- 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 :(得分:1)
问题是你的python代码只是定义一个类,但没有调用该类的主程序或导致QT弹出一个窗口。
你的Ui_MainWindow类实际上并不是QMainWindow的子类,这似乎有点不寻常;它本身不是一个小部件,但它只是配置传递给它的MainWindow。但我认为这仍然有效,例如下面的(未经测试的)代码。
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_()
答案 1 :(得分:1)
我正在做非常新手的问题,因为我是一个pyqt新手......发生的事情是我在没有-x属性的情况下调用了pyuic,所以代码只创建了UI而不是运行它的代码无论如何,你的帮助非常宝贵。
答案 2 :(得分:0)
从Qt Designer获得的代码只是一个包含一组小部件的类。它不是一个应用程序。有关如何在应用程序中使用Designer代码的信息,请参阅PyQt manual。我建议先阅读一些Qt教程,先编写一些“hello world”应用程序,然后再编写使用Designer表单的应用程序。