2011-08-23 27 views
5

İlk uygulamamı pyqt içinde çalıştırmaya çalışıyorum. Ben tasarımcı içinde önizleme yapıyorum ne zaman formu gayet iyi görünüyor:qt-designer ve pyqt ile basit form oluşturma

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

Ama benim komut dosyasından göstermekten ediyorsam var:

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

Ve paneldeki bilgi: QLayout: Zaten bir düzen

olan MyForm "Form" 'a QLayout "" ekleme girişiminde bulunma soru, tasarımımın nesi yanlış?

pyuic4 tarafından

Oluşturulan dosyası: Ben tasarımcı kullanarak formu oluşturulur ve ben GUI var import sys PyQt4 ithalat QtCore dan , 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)) 

Ve kullanıyor benim senaryom .ui dosyası:

<?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> 

cevap

12

Bunu söyleyebilirim Tasarımcıda bir QWidget tasarladınız ve bir QMainWindow yaratıyorsunuz. Tam

class MyForm(QtGui.QWidget) 
+0

tarafından

class MyForm(QtGui.QMainWindow) 

değiştirin ! Teşekkür ederim. – Adam