Portál AbcLinuxu, 5. května 2025 21:15

Dotaz: PyQt špatné pořadí prvků u Form layout

Marián Kyral avatar 9.11.2010 17:07 Marián Kyral | skóre: 29 | blog: Sem_Tam | Frýdek-Místek
PyQt špatné pořadí prvků u Form layout
Přečteno: 294×
Odpovědět | Admin
Příloha:
Mám úplně jednoduchý formulář: dvakrát Label, dvakrát input box. To vše je uspořádáno jako formulář. Když se v qt designeru podívám na náhled, tak je vše OK, ale když si daný formulář spustím v pythonu, tak jsou input boxy vlevo a Labely vpravo. Viz obrázek. Nahoře qt designer a náhled, dole formulář spuštěný z pythonu.

Když změním rozložení na tabulku, tak je to dobře.

form_layout.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>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>
Vygenerovaný form_layout.py
# -*- 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))

test2.py
from PyQt4.QtGui import  *
from PyQt4.QtCore import *
from form_layout import Ui_Form

import sys

if __name__ == "__main__":
   app = QApplication(sys.argv)
   w = QWidget()
   ui = Ui_Form()
   ui.setupUi(w)
   w.show()
   sys.exit(app.exec_())
Python 2.6, PyQt4 4.8.1

Absolutně netuším, čím to může být. qt-config jsem prošel, nic jsem nenašel. Asi to bude nějaký bug, ale kde?

Řešení dotazu:


Nástroje: Začni sledovat (1) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

Marián Kyral avatar 9.11.2010 17:10 Marián Kyral | skóre: 29 | blog: Sem_Tam | Frýdek-Místek
Rozbalit Rozbalit vše Re: PyQt špatné pořadí prvků u Form layout
Odpovědět | | Sbalit | Link | Blokovat | Admin
Příloha:
Zdrojáky v příloze. Google jsem se ptal, ale asi špatně, nevrátil nic relevantního.
Řešení 1× (Marián Kyral (tazatel))
David Watzke avatar 9.11.2010 17:55 David Watzke | skóre: 74 | blog: Blog... | Praha
Rozbalit Rozbalit vše Re: PyQt špatné pořadí prvků u Form layout
Odpovědět | | Sbalit | Link | Blokovat | Admin
Vygenerovaný kód očividně dává labelům FieldRole a lineeditům LabelRole... takže asi PyQt bug.
“Being honest may not get you a lot of friends but it’ll always get you the right ones” ―John Lennon
Marián Kyral avatar 9.11.2010 18:21 Marián Kyral | skóre: 29 | blog: Sem_Tam | Frýdek-Místek
Rozbalit Rozbalit vše Re: PyQt špatné pořadí prvků u Form layout
Díky, to bude ono. S pythonem dělám teprve dva měsíce, navíc s gtk (python-gu) a tohle je problém v jiném projektu, kde dělám jen překlady.

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.