I'm trying to save my form and load it later, but even after following the Qt docs (https://doc.qt.io/qt-5/qabstractformbuilder.html), I just get an empty window and an error message: "QFormBuilder was unable to create a widget of the class 'Window'." when loading the .ui file.
Here is a saver:
from PyQt5.QtDesigner import QFormBuilder
from PyQt5.QtWidgets import *
from PyQt5 import QtCore, QtGui
from PyQt5.QtGui import *
from PyQt5.QtCore import *
import sys
class Window(QMainWindow):
def __init__(self):
super().__init__()
label = QLabel(self, text = 'myForm')
self.setWindowTitle('myTitle')
formBuilder = QFormBuilder()
file = QFile('line_up.ui')
file.open(QFile.WriteOnly)
formBuilder.save(file, self)
file.close()
app = QApplication([])
mainWindow = Window()
mainWindow.show()
app.exec()
and here is my loader:
from PyQt5.QtCore import QFile
from PyQt5.QtDesigner import QFormBuilder
from PyQt5.QtWidgets import QApplication, QMainWindow, QWidget, QVBoxLayout
#from Qt docs
class MyForm(QWidget):
def __init__(self):
super().__init__()
formBuilder = QFormBuilder()
file = QFile('line_up.ui')
file.open(QFile.ReadOnly)
widget = QWidget()
widget = formBuilder.load(file, self)
file.close()
##
app = QApplication([])
mainWindow = MyForm()
mainWindow.show()
app.exec()
and here is the .ui file:
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class></class>
<widget class="Window">
<property name="styleSheet">
<string notr="true"/>
</property>
<property name="unifiedTitleAndToolBarOnMac">
<bool>false</bool>
</property>
<property name="baseSize">
<size>
<width>0</width>
<height>0</height>
</size>
</property>
<property name="palette">
<palette>
<active/>
<inactive/>
<disabled/>
</palette>
</property>
<property name="sizeIncrement">
<size>
<width>0</width>
<height>0</height>
</size>
</property>
<property name="windowModality">
<enum>Qt::NonModal</enum>
</property>
<property name="tabShape">
<enum>QTabWidget::Rounded</enum>
</property>
<property name="font">
<font/>
</property>
<property name="maximumWidth">
<number>16777215</number>
</property>
<property name="windowTitle">
<string>myTitle</string>
</property>
<property name="size" stdset="0">
<size>
<width>640</width>
<height>480</height>
</size>
</property>
<property name="layoutDirection">
<enum>Qt::LeftToRight</enum>
</property>
<property name="dockNestingEnabled">
<bool>false</bool>
</property>
<property name="maximumSize">
<size>
<width>16777215</width>
<height>16777215</height>
</size>
</property>
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>640</width>
<height>480</height>
</rect>
</property>
<property name="whatsThis">
<string/>
</property>
<property name="cursor">
<cursorShape>ArrowCursor</cursorShape>
</property>
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="focusPolicy">
<enum>Qt::NoFocus</enum>
</property>
<property name="enabled">
<bool>true</bool>
</property>
<property name="autoFillBackground">
<bool>false</bool>
</property>
<property name="windowModified">
<bool>false</bool>
</property>
<property name="updatesEnabled">
<bool>true</bool>
</property>
<property name="iconSize">
<size>
<width>24</width>
<height>24</height>
</size>
</property>
<property name="toolTipDuration">
<number>-1</number>
</property>
<property name="tabletTracking">
<bool>false</bool>
</property>
<property name="contextMenuPolicy">
<enum>Qt::DefaultContextMenu</enum>
</property>
<property name="locale">
<locale language="English" country="UnitedKingdom"/>
</property>
<property name="windowIconText">
<string/>
</property>
<property name="toolTip">
<string/>
</property>
<property name="accessibleName">
<string/>
</property>
<property name="documentMode">
<bool>false</bool>
</property>
<property name="pos" stdset="0">
<point>
<x>0</x>
<y>0</y>
</point>
</property>
<property name="minimumWidth">
<number>0</number>
</property>
<property name="windowFilePath">
<string/>
</property>
<property name="maximumHeight">
<number>16777215</number>
</property>
<property name="objectName">
<string notr="true"/>
</property>
<property name="toolButtonStyle">
<enum>Qt::ToolButtonIconOnly</enum>
</property>
<property name="windowOpacity">
<double>1.000000000000000</double>
</property>
<property name="mouseTracking">
<bool>false</bool>
</property>
<property name="statusTip">
<string/>
</property>
<property name="accessibleDescription">
<string/>
</property>
<property name="inputMethodHints">
<enum>Qt::ImhNone</enum>
</property>
<property name="acceptDrops">
<bool>false</bool>
</property>
<property name="minimumSize">
<size>
<width>0</width>
<height>0</height>
</size>
</property>
<property name="minimumHeight">
<number>0</number>
</property>
<property name="animated">
<bool>true</bool>
</property>
<property name="visible">
<bool>false</bool>
</property>
<layout class="QMainWindowLayout" name="_layout">
<property name="objectName">
<string notr="true">_layout</string>
</property>
<property name="margin">
<number>11</number>
</property>
<property name="sizeConstraint">
<enum>QLayout::SetDefaultConstraint</enum>
</property>
<property name="spacing">
<number>6</number>
</property>
</layout>
<widget class="QLabel">
<property name="styleSheet">
<string notr="true"/>
</property>
<property name="textFormat">
<enum>Qt::AutoText</enum>
</property>
<property name="baseSize">
<size>
<width>0</width>
<height>0</height>
</size>
</property>
<property name="text">
<string>myForm</string>
</property>
<property name="palette">
<palette>
<active/>
<inactive/>
<disabled/>
</palette>
</property>
<property name="sizeIncrement">
<size>
<width>0</width>
<height>0</height>
</size>
</property>
<property name="windowModality">
<enum>Qt::NonModal</enum>
</property>
<property name="font">
<font/>
</property>
<property name="maximumWidth">
<number>16777215</number>
</property>
<property name="margin">
<number>0</number>
</property>
<property name="windowTitle">
<string/>
</property>
<property name="size" stdset="0">
<size>
<width>100</width>
<height>30</height>
</size>
</property>
<property name="layoutDirection">
<enum>Qt::LeftToRight</enum>
</property>
<property name="openExternalLinks">
<bool>false</bool>
</property>
<property name="maximumSize">
<size>
<width>16777215</width>
<height>16777215</height>
</size>
</property>
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>100</width>
<height>30</height>
</rect>
</property>
<property name="whatsThis">
<string/>
</property>
<property name="cursor">
<cursorShape>ArrowCursor</cursorShape>
</property>
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="focusPolicy">
<enum>Qt::NoFocus</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Plain</enum>
</property>
<property name="textInteractionFlags">
<enum>Qt::LinksAccessibleByMouse</enum>
</property>
<property name="enabled">
<bool>true</bool>
</property>
<property name="frameShape">
<enum>QFrame::NoFrame</enum>
</property>
<property name="autoFillBackground">
<bool>false</bool>
</property>
<pr