Note that there are some explanatory texts on larger screens.

plurals
  1. POLoading a simple Qt Designer form in to Pyside
    text
    copied!<p>I create a simple form in Qt designer and am trying to load it in to a Qt application I'm creating with PySide but without much luck.</p> <p>Here's the generated code from `pyside-uic':</p> <pre><code># -*- coding: utf-8 -*- # Form implementation generated from reading ui file 'clientEditorForm.ui' # # Created: Tue Nov 3 23:46:41 2009 # by: PySide uic UI code generator # # WARNING! All changes made in this file will be lost! from PySide import QtCore, QtGui class Ui_clientEditorForm(object): def setupUi(self, clientEditorForm): clientEditorForm.setObjectName("clientEditorForm") clientEditorForm.resize(575, 446) self.horizontalLayout_3 = QtGui.QHBoxLayout(clientEditorForm) self.horizontalLayout_3.setObjectName("horizontalLayout_3") self.splitter = QtGui.QSplitter(clientEditorForm) self.splitter.setOrientation(QtCore.Qt.Horizontal) self.splitter.setObjectName("splitter") self.layoutWidget = QtGui.QWidget(self.splitter) self.layoutWidget.setObjectName("layoutWidget") self.verticalLayout = QtGui.QVBoxLayout(self.layoutWidget) self.verticalLayout.setObjectName("verticalLayout") self.horizontalLayout_2 = QtGui.QHBoxLayout() self.horizontalLayout_2.setObjectName("horizontalLayout_2") self.searchLabel = QtGui.QLabel(self.layoutWidget) self.searchLabel.setObjectName("searchLabel") self.horizontalLayout_2.addWidget(self.searchLabel) self.searchEdit = QtGui.QLineEdit(self.layoutWidget) self.searchEdit.setObjectName("searchEdit") self.horizontalLayout_2.addWidget(self.searchEdit) self.clearButton = QtGui.QPushButton(self.layoutWidget) self.clearButton.setObjectName("clearButton") self.horizontalLayout_2.addWidget(self.clearButton) self.verticalLayout.addLayout(self.horizontalLayout_2) self.clientListView = QtGui.QListView(self.layoutWidget) sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Expanding) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth(self.clientListView.sizePolicy().hasHeightForWidth()) self.clientListView.setSizePolicy(sizePolicy) self.clientListView.setObjectName("clientListView") self.verticalLayout.addWidget(self.clientListView) self.frame = QtGui.QFrame(self.splitter) self.frame.setFrameShape(QtGui.QFrame.StyledPanel) self.frame.setFrameShadow(QtGui.QFrame.Raised) self.frame.setObjectName("frame") self.verticalLayout_3 = QtGui.QVBoxLayout(self.frame) self.verticalLayout_3.setObjectName("verticalLayout_3") self.formLayout = QtGui.QFormLayout() self.formLayout.setObjectName("formLayout") self.nameEdit = QtGui.QLineEdit(self.frame) self.nameEdit.setObjectName("nameEdit") self.formLayout.setWidget(0, QtGui.QFormLayout.FieldRole, self.nameEdit) self.nameLabel = QtGui.QLabel(self.frame) self.nameLabel.setObjectName("nameLabel") self.formLayout.setWidget(0, QtGui.QFormLayout.LabelRole, self.nameLabel) self.profileButton = QtGui.QLabel(self.frame) self.profileButton.setObjectName("profileButton") self.formLayout.setWidget(1, QtGui.QFormLayout.LabelRole, self.profileButton) self.addressLabel = QtGui.QLabel(self.frame) self.addressLabel.setObjectName("addressLabel") self.formLayout.setWidget(2, QtGui.QFormLayout.LabelRole, self.addressLabel) self.locationLabel = QtGui.QLabel(self.frame) self.locationLabel.setObjectName("locationLabel") self.formLayout.setWidget(3, QtGui.QFormLayout.LabelRole, self.locationLabel) self.secureLabel = QtGui.QLabel(self.frame) self.secureLabel.setObjectName("secureLabel") self.formLayout.setWidget(4, QtGui.QFormLayout.LabelRole, self.secureLabel) self.UUIDLabel = QtGui.QLabel(self.frame) self.UUIDLabel.setObjectName("UUIDLabel") self.formLayout.setWidget(5, QtGui.QFormLayout.LabelRole, self.UUIDLabel) self.passwordLabel = QtGui.QLabel(self.frame) self.passwordLabel.setObjectName("passwordLabel") self.formLayout.setWidget(6, QtGui.QFormLayout.LabelRole, self.passwordLabel) self.profileComboBox = QtGui.QComboBox(self.frame) self.profileComboBox.setObjectName("profileComboBox") self.formLayout.setWidget(1, QtGui.QFormLayout.FieldRole, self.profileComboBox) self.addressEdit = QtGui.QLineEdit(self.frame) self.addressEdit.setObjectName("addressEdit") self.formLayout.setWidget(2, QtGui.QFormLayout.FieldRole, self.addressEdit) self.locationComboBox = QtGui.QComboBox(self.frame) self.locationComboBox.setObjectName("locationComboBox") self.formLayout.setWidget(3, QtGui.QFormLayout.FieldRole, self.locationComboBox) self.secureComboBox = QtGui.QComboBox(self.frame) self.secureComboBox.setObjectName("secureComboBox") self.formLayout.setWidget(4, QtGui.QFormLayout.FieldRole, self.secureComboBox) self.UUIDEdit = QtGui.QLineEdit(self.frame) self.UUIDEdit.setObjectName("UUIDEdit") self.formLayout.setWidget(5, QtGui.QFormLayout.FieldRole, self.UUIDEdit) self.passwordEdit = QtGui.QLineEdit(self.frame) self.passwordEdit.setObjectName("passwordEdit") self.formLayout.setWidget(6, QtGui.QFormLayout.FieldRole, self.passwordEdit) self.verticalLayout_3.addLayout(self.formLayout) self.aliasesGroupBox = QtGui.QGroupBox(self.frame) self.aliasesGroupBox.setFlat(False) self.aliasesGroupBox.setCheckable(False) self.aliasesGroupBox.setObjectName("aliasesGroupBox") self.verticalLayout_2 = QtGui.QVBoxLayout(self.aliasesGroupBox) self.verticalLayout_2.setObjectName("verticalLayout_2") self.aliasesListView = QtGui.QListView(self.aliasesGroupBox) self.aliasesListView.setObjectName("aliasesListView") self.verticalLayout_2.addWidget(self.aliasesListView) self.horizontalLayout_4 = QtGui.QHBoxLayout() self.horizontalLayout_4.setObjectName("horizontalLayout_4") spacerItem = QtGui.QSpacerItem(40, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum) self.horizontalLayout_4.addItem(spacerItem) self.addButton = QtGui.QPushButton(self.aliasesGroupBox) self.addButton.setObjectName("addButton") self.horizontalLayout_4.addWidget(self.addButton) self.removeButton = QtGui.QPushButton(self.aliasesGroupBox) self.removeButton.setObjectName("removeButton") self.horizontalLayout_4.addWidget(self.removeButton) self.verticalLayout_2.addLayout(self.horizontalLayout_4) self.verticalLayout_3.addWidget(self.aliasesGroupBox) spacerItem1 = QtGui.QSpacerItem(20, 38, QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Expanding) self.verticalLayout_3.addItem(spacerItem1) self.horizontalLayout = QtGui.QHBoxLayout() self.horizontalLayout.setObjectName("horizontalLayout") spacerItem2 = QtGui.QSpacerItem(40, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum) self.horizontalLayout.addItem(spacerItem2) self.revertButton = QtGui.QPushButton(self.frame) self.revertButton.setObjectName("revertButton") self.horizontalLayout.addWidget(self.revertButton) self.applyButton = QtGui.QPushButton(self.frame) self.applyButton.setObjectName("applyButton") self.horizontalLayout.addWidget(self.applyButton) self.verticalLayout_3.addLayout(self.horizontalLayout) self.horizontalLayout_3.addWidget(self.splitter) self.searchLabel.setBuddy(self.searchEdit) self.nameLabel.setBuddy(self.nameEdit) self.profileButton.setBuddy(self.profileComboBox) self.addressLabel.setBuddy(self.addressEdit) self.locationLabel.setBuddy(self.locationComboBox) self.secureLabel.setBuddy(self.secureComboBox) self.UUIDLabel.setBuddy(self.UUIDEdit) self.passwordLabel.setBuddy(self.passwordEdit) self.retranslateUi(clientEditorForm) QtCore.QMetaObject.connectSlotsByName(clientEditorForm) def retranslateUi(self, clientEditorForm): clientEditorForm.setWindowTitle(QtGui.QApplication.translate("clientEditorForm", "Form", None, QtGui.QApplication.UnicodeUTF8)) self.searchLabel.setText(QtGui.QApplication.translate("clientEditorForm", "Search", None, QtGui.QApplication.UnicodeUTF8)) self.clearButton.setText(QtGui.QApplication.translate("clientEditorForm", "Clear", None, QtGui.QApplication.UnicodeUTF8)) self.nameLabel.setText(QtGui.QApplication.translate("clientEditorForm", "Name", None, QtGui.QApplication.UnicodeUTF8)) self.profileButton.setText(QtGui.QApplication.translate("clientEditorForm", "Profile", None, QtGui.QApplication.UnicodeUTF8)) self.addressLabel.setText(QtGui.QApplication.translate("clientEditorForm", "Address", None, QtGui.QApplication.UnicodeUTF8)) self.locationLabel.setText(QtGui.QApplication.translate("clientEditorForm", "Location", None, QtGui.QApplication.UnicodeUTF8)) self.secureLabel.setText(QtGui.QApplication.translate("clientEditorForm", "Secure", None, QtGui.QApplication.UnicodeUTF8)) self.UUIDLabel.setText(QtGui.QApplication.translate("clientEditorForm", "UUID", None, QtGui.QApplication.UnicodeUTF8)) self.passwordLabel.setText(QtGui.QApplication.translate("clientEditorForm", "Password", None, QtGui.QApplication.UnicodeUTF8)) self.aliasesGroupBox.setTitle(QtGui.QApplication.translate("clientEditorForm", "Aliases", None, QtGui.QApplication.UnicodeUTF8)) self.addButton.setText(QtGui.QApplication.translate("clientEditorForm", "Add", None, QtGui.QApplication.UnicodeUTF8)) self.removeButton.setText(QtGui.QApplication.translate("clientEditorForm", "Remove", None, QtGui.QApplication.UnicodeUTF8)) self.revertButton.setText(QtGui.QApplication.translate("clientEditorForm", "Revert", None, QtGui.QApplication.UnicodeUTF8)) self.applyButton.setText(QtGui.QApplication.translate("clientEditorForm", "Apply", None, QtGui.QApplication.UnicodeUTF8)) </code></pre> <p>Then my simple application:</p> <pre><code>import sys from PySide import QtCore, QtGui from clientEditorForm import Ui_clientEditorForm class MyMainWindow(QtGui.QMainWindow): def __init__(self, parent=None): super(MyMainWindow, self).__init__(parent) self.ui = Ui_clientEditorForm() self.ui.setupUi(self) if __name__ == "__main__": app = QtGui.QApplication(sys.argv) myapp = MyMainWindow() myapp.show() sys.exit(app.exec_()) </code></pre> <p>However, when I try to run it, I get the following:</p> <pre><code>QLayout: Attempting to add QLayout "" to QMainWindow "clientEditorForm", which already has a layout </code></pre> <p>and a segmentation fault. I'm following the basic instructions in <a href="http://www.rkblog.rk.edu.pl/w/p/introduction-pyqt4/" rel="nofollow noreferrer">this tutorial</a> but I can't tell what I'm doing wrong.</p>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload