[PyQt] pyuic4 assign invalid roles to labels and fields in Form layout
Marián Kyral
mkyral at email.cz
Tue Nov 9 18:25:28 GMT 2010
Hello,
I've folloving ui file:
<?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>400</width>
<height>300</height>
</rect>
</property>
<property name="windowTitle">
<string>Form</string>
</property>
<layout class="QFormLayout" name="formLayout">
<item row="0" column="0">
<widget class="QLabel" name="label">
<property name="text">
<string>Jablka:</string>
</property>
</widget>
</item>
<item row="0" column="1">
<widget class="QLineEdit" name="lineEdit"/>
</item>
<item row="1" column="0">
<widget class="QLabel" name="label_2">
<property name="text">
<string>Hrušky:</string>
</property>
</widget>
</item>
<item row="1" column="1">
<widget class="QLineEdit" name="lineEdit_2"/>
</item>
</layout>
</widget>
<resources/>
<connections/>
</ui>
pyuic4 generates following code:
# -*- coding: utf-8 -*-
# Form implementation generated from reading ui file 'form_layout.ui'
#
# Created: Tue Nov 9 15:41:01 2010
# by: PyQt4 UI code generator 4.8.1
#
# WARNING! All changes made in this file will be lost!
from PyQt4 import QtCore, QtGui
try:
_fromUtf8 = QtCore.QString.fromUtf8
except AttributeError:
_fromUtf8 = lambda s: s
class Ui_Form(object):
def setupUi(self, Form):
Form.setObjectName(_fromUtf8("Form"))
Form.resize(400, 300)
self.formLayout = QtGui.QFormLayout(Form)
self.formLayout.setObjectName(_fromUtf8("formLayout"))
self.label = QtGui.QLabel(Form)
self.label.setObjectName(_fromUtf8("label"))
self.formLayout.setWidget(0, QtGui.QFormLayout.FieldRole, self.label)
self.lineEdit = QtGui.QLineEdit(Form)
self.lineEdit.setObjectName(_fromUtf8("lineEdit"))
self.formLayout.setWidget(0, QtGui.QFormLayout.LabelRole, self.lineEdit)
self.label_2 = QtGui.QLabel(Form)
self.label_2.setObjectName(_fromUtf8("label_2"))
self.formLayout.setWidget(1, QtGui.QFormLayout.FieldRole, self.label_2)
self.lineEdit_2 = QtGui.QLineEdit(Form)
self.lineEdit_2.setObjectName(_fromUtf8("lineEdit_2"))
self.formLayout.setWidget(1, QtGui.QFormLayout.LabelRole, self.lineEdit_2)
self.retranslateUi(Form)
QtCore.QMetaObject.connectSlotsByName(Form)
def retranslateUi(self, Form):
Form.setWindowTitle(QtGui.QApplication.translate("Form", "Form", None, QtGui.QApplication.UnicodeUTF8))
self.label.setText(QtGui.QApplication.translate("Form", "Jablka:", None, QtGui.QApplication.UnicodeUTF8))
self.label_2.setText(QtGui.QApplication.translate("Form", "Hrušky:", None, QtGui.QApplication.UnicodeUTF8))
As you can see, labels have assigned FieldRole and fields have assigned LabelRole.
self.formLayout.setWidget(0, QtGui.QFormLayout.FieldRole, self.label)
self.formLayout.setWidget(0, QtGui.QFormLayout.LabelRole, self.lineEdit)
This problem is at least in pyqt 4.8.0 and 4.8.1.
Regards,
Marian Kyral
More information about the PyQt
mailing list