2009-12-10 65 views
0

我是PyQt的新手,雖然我知道Python有點..我想Qt的GUI編程設計師,因爲它會讓我的工作更輕鬆。我在Qt設計器中做了一個簡單的對話,並使用pyuic4進行了轉換。如何運行由pyuic4生成的程序?

from PyQt4 import QtCore, QtGui 

class Ui_Form1(object): 
    def setupUi(self, Form1): 
     Form1.setObjectName("Form1") 
     Form1.resize(495, 364) 
     self.listWidget = QtGui.QListWidget(Form1) 
     self.listWidget.setGeometry(QtCore.QRect(60, 100, 221, 111)) 
     self.listWidget.setObjectName("listWidget") 
     self.lineEdit = QtGui.QLineEdit(Form1) 
     self.lineEdit.setGeometry(QtCore.QRect(60, 250, 221, 26)) 
     self.lineEdit.setObjectName("lineEdit") 
     self.pushButton = QtGui.QPushButton(Form1) 
     self.pushButton.setGeometry(QtCore.QRect(350, 170, 92, 28)) 
     self.pushButton.setAutoDefault(False) 
     self.pushButton.setObjectName("pushButton") 

     self.retranslateUi(Form1) 
     QtCore.QObject.connect(self.pushButton, QtCore.SIGNAL("clicked()"), self.listWidget.clear) 
     QtCore.QMetaObject.connectSlotsByName(Form1) 

    def retranslateUi(self, Form1): 
     Form1.setWindowTitle(QtGui.QApplication.translate("Form1", "Form1", None, QtGui.QApplication.UnicodeUTF8)) 
     self.pushButton.setText(QtGui.QApplication.translate("Form1", "X", None, QtGui.QApplication.UnicodeUTF8)) 

我想運行這個程序。如何通過導入此文件從此文件運行此程序?我知道這是一個非常基本的問題。

回答

3

您可以將-x參數傳遞給pyuic。它將生成附加代碼以使腳本可執行。


在實際應用中,你應該寫的更好的QMainWindow子類,看起來是這樣的:

# Store this code in the file MyMainWindow.py 
from PyQt4.QtGui import * 

class MyMainWindow(QMainWindow): 
    def __init__(self, ui_layout): 
     QMainWindow.__init__(self) 

     self.ui = ui_layout 
     ui_layout.setupUi(self) 

而且也是在同一目錄MyMainWindow.py創建一個主可執行腳本:

from PyQt4.QtGui import * 
from MyMainWindow import * 
from Form1 import *    # replace Form1 the name of your generated file 
import sys 

app = QApplication(sys.argv) 

window = MyMainWindow(Ui_Form1()) 
window.show() 

sys.exit(app.exec_()) 

然後運行最後一個腳本啓動程序。

+0

非常感謝亞歷克斯的答覆..這解決了很多問題..很高興收到立即迴應從這個論壇.. – Jeba 2009-12-10 16:53:39

相關問題