2011-08-23 9 views
5

私はpyqtで最初のアプリケーションを実行しようとしています。私はデザイナーでプレビューをやっているとき、私のフォームは正常に見える:qt-designerとpyqtでシンプルなフォームを作成する

http://imageshack.us/photo/my-images/171/screenshotuw.png/

をしかし、私は私のスクリプトから、それを示すだ場合、私は得た:

http://imageshack.us/photo/my-images/268/screenshot1hwn.png/

と端末内の情報: QLayout:既にレイアウトを持っているMyForm "Form"にQLayoutを追加しようとしています

質問は、私のデザインに何が問題なのですか?

pyuic4によって

生成されたファイル:私はデザイナーを使用してフォームを作成し、私は、GUIを持っ 輸入SYS PyQt4インポートQtCoreから 、QtGui

from gen import Ui_Form 


    class MyForm(QtGui.QMainWindow): 
     def __init__(self, parent=None): 
      QtGui.QWidget.__init__(self, parent) 
      self.ui = Ui_Form() 
      self.ui.setupUi(self) 
     def execute_event(self): 
      pass 
     def execute_all_event(self): 
      pass 
     def reload_event(self): 
      pass 

    if __name__ == "__main__": 
     app = QtGui.QApplication(sys.argv) 
     myapp = MyForm() 
     myapp.show() 
     sys.exit(app.exec_()) 

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

# Form implementation generated from reading ui file 'gui.ui' 
# 
# Created: Tue Aug 23 11:17:30 2011 
#  by: PyQt4 UI code generator 4.7.2 
# 
# WARNING! All changes made in this file will be lost! 

from PyQt4 import QtCore, QtGui 

class Ui_Form(object): 
    def setupUi(self, Form): 
    Form.setObjectName("Form") 
    Form.resize(464, 409) 
    self.verticalLayout_2 = QtGui.QVBoxLayout(Form) 
    self.verticalLayout_2.setObjectName("verticalLayout_2") 
    self.horizontalLayout = QtGui.QHBoxLayout() 
    self.horizontalLayout.setObjectName("horizontalLayout") 
    self.listView = QtGui.QListView(Form) 
    self.listView.setObjectName("listView") 
    self.horizontalLayout.addWidget(self.listView) 
    self.verticalLayout = QtGui.QVBoxLayout() 
    self.verticalLayout.setObjectName("verticalLayout") 
    self.pushButton = QtGui.QPushButton(Form) 
    self.pushButton.setObjectName("pushButton") 
    self.verticalLayout.addWidget(self.pushButton) 
    self.pushButton_2 = QtGui.QPushButton(Form) 
    self.pushButton_2.setObjectName("pushButton_2") 
    self.verticalLayout.addWidget(self.pushButton_2) 
    spacerItem = QtGui.QSpacerItem(20, 40, QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Expanding) 
    self.verticalLayout.addItem(spacerItem) 
    self.pushButton_3 = QtGui.QPushButton(Form) 
    self.pushButton_3.setObjectName("pushButton_3") 
    self.verticalLayout.addWidget(self.pushButton_3) 
    self.horizontalLayout.addLayout(self.verticalLayout) 
    self.verticalLayout_2.addLayout(self.horizontalLayout) 
    self.textBrowser = QtGui.QTextBrowser(Form) 
    self.textBrowser.setObjectName("textBrowser") 
    self.verticalLayout_2.addWidget(self.textBrowser) 

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

    def retranslateUi(self, Form): 
    Form.setWindowTitle(QtGui.QApplication.translate("Form", "Form", None, QtGui.QApplication.UnicodeUTF8)) 
    self.pushButton.setText(QtGui.QApplication.translate("Form", "PushButton", None, QtGui.QApplication.UnicodeUTF8)) 
    self.pushButton_2.setText(QtGui.QApplication.translate("Form", "PushButton", None, QtGui.QApplication.UnicodeUTF8)) 
    self.pushButton_3.setText(QtGui.QApplication.translate("Form", "PushButton", None, QtGui.QApplication.UnicodeUTF8)) 

そして、それを使用している私のスクリプト.uiファイル:

<?xml version="1.0" encoding="UTF-8"?> 
<ui version="4.0"> 
<class>Form</class> 
<widget class="QWidget" name="Form"> 
    <property name="geometry"> 
    <rect> 
    <x>0</x> 
    <y>0</y> 
    <width>464</width> 
    <height>409</height> 
    </rect> 
    </property> 
    <property name="windowTitle"> 
    <string>Form</string> 
    </property> 
    <layout class="QVBoxLayout" name="verticalLayout_2"> 
    <item> 
    <layout class="QHBoxLayout" name="horizontalLayout"> 
    <item> 
     <widget class="QListView" name="listView"/> 
    </item> 
    <item> 
     <layout class="QVBoxLayout" name="verticalLayout"> 
     <item> 
    <widget class="QPushButton" name="pushButton"> 
    <property name="text"> 
     <string>PushButton</string> 
    </property> 
    </widget> 
     </item> 
     <item> 
    <widget class="QPushButton" name="pushButton_2"> 
    <property name="text"> 
     <string>PushButton</string> 
    </property> 
    </widget> 
     </item> 
     <item> 
    <spacer name="verticalSpacer"> 
    <property name="orientation"> 
     <enum>Qt::Vertical</enum> 
    </property> 
    <property name="sizeHint" stdset="0"> 
     <size> 
     <width>20</width> 
     <height>40</height> 
     </size> 
    </property> 
    </spacer> 
     </item> 
     <item> 
    <widget class="QPushButton" name="pushButton_3"> 
    <property name="text"> 
     <string>PushButton</string> 
    </property> 
    </widget> 
     </item> 
     </layout> 
    </item> 
    </layout> 
    </item> 
    <item> 
    <widget class="QTextBrowser" name="textBrowser"/> 
    </item> 
    </layout> 
</widget> 
<resources/> 
<connections/> 
</ui> 

答えて

12

デザイナーにQWidgetをデザインし、QMainWindowを作成します。 正確

class MyForm(QtGui.QWidget) 
+0

によって

class MyForm(QtGui.QMainWindow) 

を交換してください!ありがとうございました。 – Adam

関連する問題