2016-09-28 36 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