2016-09-28 80 views
0

首先我開始編程:)Python QT。從另一個表格形式

我在QT設計器窗體(MainForm)中創建並在按鈕中添加函數以打開一個新窗體。我從 How do I open sub window after I click on button on main screen in PyQt4這個步驟(第一anwser),但是當我編譯我:

「Ui_V1」對象有沒有屬性「秀」

問題出在哪裏。 謝謝:)

這是在主form.py代碼的一部分:

from V1 import Ui_V1 
#V1 class and form 
self.pushButton_5.clicked.connect(lambda: self.openV1()) 
def openV1(self): 
    window=Ui_V1() 
    window.show() 

OK我通過YT看視頻解決這樣的:d

def openV1(self): 
    self.V1Window=QtGui.QMainWindow() 
    self.ui= Ui_V1() 
    self.ui.setupUi(self.V1Window) 
    self.V1Window.show() 

和工程:)

回答

0

你把你的代碼編譯到python了嗎?默認情況下,它將是一個ui文件。您可以使用pyuic4.exe文件。

c:\Python27\Lib\site-packages\PyQt4\something> pyuic4.exe full/path/to/input.ui -o full/path/to/output.py 
+0

是的,當然我編:) – Armind

0

查看生成的文件。通常pyuic4生成一個不是QtWidget的類,它只是一個使用setupUI方法的工廠。

我經常這樣做:

class MyForm(QtGui.QWidget, Ui_V1): 
    def __init__(self, *args): 
     QtGui.QWidget.__init__(self, *args) 
     self.setupUi(self) 

然後你可以使用你的MyForm作爲常規部件。

+0

生成此: 類Ui_V1(對象): 高清setupUi(個體經營,V1): V1.setObjectName(_fromUtf8( 「V1」)) V1.resize(400, 300) self.label = QtGui.QLabel(V1) self.label.setGeometry(QtCore.QRect(180,10,46,25)) – Armind

+0

「setupUi」方法就是你必須用'self'調用一個論據 – crispamares

+0

colud你告訴我,我應該改變我的代碼? – Armind