dynamic layout + start maximized
This commit is contained in:
parent
48f8dc221a
commit
de44023116
4 changed files with 290 additions and 328 deletions
10
changelog.md
10
changelog.md
|
@ -1,5 +1,15 @@
|
|||
# Changelog GarageCalc1
|
||||
|
||||
## [0.4.1] - 2021-07-01
|
||||
## Added
|
||||
- Dynamisches Layout
|
||||
- Programm startet maximiert wenn Breite der Auflösung <= 700 pixel, ansonsten 610 * 640
|
||||
|
||||
## [0.4] - 2021-06-30
|
||||
## Added
|
||||
- Einzelne Zellen lassen sich nun selektieren/kopieren/verschieben/löschen (zusätzlich zu Reihen)
|
||||
- Kontextmenü für Zellen
|
||||
|
||||
## [0.3] - 2021-06-29
|
||||
### Added
|
||||
- Warnt beim Beenden falls ungespeicherte Einträge vorhanden sind
|
||||
|
|
131
src/main.py
131
src/main.py
|
@ -28,14 +28,14 @@ from utils import show_about, resource_path
|
|||
from clsTableWidget import TableWidget
|
||||
|
||||
# Local globals
|
||||
APP_VERSION = "v0.4"
|
||||
APP_VERSION = "v0.4.1"
|
||||
|
||||
DIR_APPDATA = os.getenv('LOCALAPPDATA')
|
||||
|
||||
APP_NAME = QCoreApplication.translate("main", "Garage Space Calculator")
|
||||
APP_NAME = "Garage Space Calculator"
|
||||
APP_DISPNAME = "GarageCalc"
|
||||
APP_AUTHOR = "Paul Salajean"
|
||||
APP_DESCR = QCoreApplication.translate("main", "Calculates available garage space")
|
||||
APP_DESCR = "Calculates available garage space"
|
||||
APP_COPYRIGHT = "(c) Paul Salajean 2021"
|
||||
APP_WEBSITE = "https://gitlab.com/ProfP303"
|
||||
APP_DESKTOPFILENAME = APP_DISPNAME
|
||||
|
@ -66,7 +66,63 @@ TBL_STUFF_ROW_COUNT = 50
|
|||
|
||||
TXT_UNSAVED_CHANGES = QCoreApplication.translate("main", "There are unsaved entries. Without saving, all changes are lost. Continue anyway?")
|
||||
|
||||
class MyMainWindow(QMainWindow):
|
||||
####################################################################
|
||||
def main():
|
||||
qApp = QApplication(sys.argv)
|
||||
|
||||
qApp.setApplicationName(APP_NAME)
|
||||
qApp.setApplicationDisplayName(APP_DISPNAME)
|
||||
qApp.setApplicationVersion(APP_VERSION)
|
||||
qApp.description = APP_DESCR
|
||||
qApp.copyright = APP_COPYRIGHT
|
||||
qApp.website = APP_WEBSITE
|
||||
qApp.setWindowIcon(QIcon(APP_ICON))
|
||||
qApp.setDesktopFileName(APP_DESKTOPFILENAME)
|
||||
|
||||
config = configparser.ConfigParser()
|
||||
|
||||
language = "Deutsch"
|
||||
|
||||
if os.path.exists(os.path.join(DIR_APPDATA, APP_DISPNAME, APP_DISPNAME + '.ini')):
|
||||
config.read(os.path.join(DIR_APPDATA, APP_DISPNAME, APP_DISPNAME + '.ini'))
|
||||
language = config['DEFAULT']['language']
|
||||
else:
|
||||
config['DEFAULT']['language'] = language
|
||||
if not os.path.exists(os.path.join(DIR_APPDATA, APP_DISPNAME)):
|
||||
os.makedirs(os.path.join(DIR_APPDATA, APP_DISPNAME))
|
||||
|
||||
with open(os.path.join(DIR_APPDATA, APP_DISPNAME, APP_DISPNAME + '.ini'), 'w') as configfile: # save
|
||||
config.write(configfile)
|
||||
|
||||
translator = QTranslator()
|
||||
|
||||
print("Current dir:", os.getcwd())
|
||||
if language == "Deutsch":
|
||||
print("Loading german language file.")
|
||||
translator.load(resource_path('./i18n/de_DE'))
|
||||
elif language == "Magyar":
|
||||
print("Loading hungarian langauge file.")
|
||||
translator.load(resource_path('./i18n/hu_HU'))
|
||||
else:
|
||||
print(f"Unknown language setting '{language}' -> defaulting to english language.")
|
||||
|
||||
qApp.installTranslator(translator)
|
||||
|
||||
winMain = MainWindow(language)
|
||||
|
||||
if qApp.primaryScreen().size().width() <= 700:
|
||||
winMain.showMaximized()
|
||||
else:
|
||||
winMain.resize(610, 640)
|
||||
|
||||
winMain.show()
|
||||
|
||||
sys.exit(qApp.exec_())
|
||||
|
||||
####################################################################
|
||||
|
||||
####################################################################
|
||||
class MainWindow(QMainWindow):
|
||||
def __init__(self, language):
|
||||
super().__init__()
|
||||
|
||||
|
@ -83,8 +139,10 @@ class MyMainWindow(QMainWindow):
|
|||
self.create_actions()
|
||||
self.create_toolbar()
|
||||
self.create_statusbar()
|
||||
|
||||
global APP_NAME
|
||||
APP_NAME = qApp.translate("main", "Garage Space Calculator")
|
||||
APP_NAME = qApp.setApplicationName(qApp.translate("main", "Garage Space Calculator"))
|
||||
|
||||
self.statusBar.showMessage(f"{APP_NAME} {APP_VERSION} - {APP_AUTHOR}", 5000)
|
||||
self.calc_voluminae()
|
||||
self.ui.efWeight.setText(str("0"))
|
||||
|
@ -157,20 +215,12 @@ class MyMainWindow(QMainWindow):
|
|||
self.ui = loader.load(ui_file, self)
|
||||
ui_file.close()
|
||||
|
||||
#self.ui.tableStuff = TableWidget(self.ui.gbStuff)
|
||||
# implement custom class 'TableWidget'
|
||||
layoutGb = self.ui.gbStuff.layout()
|
||||
self.ui.tableStuff = TableWidget()
|
||||
self.ui.tableStuff.setColumnCount(TBL_STUFF_COL_COUNT)
|
||||
self.ui.tableStuff.setRowCount(TBL_STUFF_ROW_COUNT)
|
||||
self.ui.tableStuff.move(10, 23)
|
||||
self.ui.tableStuff.resize(541,268)
|
||||
|
||||
# create layout
|
||||
#hBox = QHBoxLayout()
|
||||
#hBox.addWidget(self.ui.tableStuff)
|
||||
#self.ui.tableStuff.move(10, 23)
|
||||
self.ui.tableStuff.setParent(self.ui.gbStuff)
|
||||
#self.ui.gbStuff.setLayout(hBox)
|
||||
|
||||
layoutGb.addWidget(self.ui.tableStuff)
|
||||
|
||||
def create_actions(self):
|
||||
self.actionNew = QAction()
|
||||
|
@ -782,50 +832,7 @@ class MyMainWindow(QMainWindow):
|
|||
self.retranslateUi()
|
||||
|
||||
|
||||
####################################################################
|
||||
|
||||
if __name__ == "__main__":
|
||||
qApp = QApplication([])
|
||||
|
||||
qApp.setApplicationName(APP_NAME)
|
||||
qApp.setApplicationDisplayName(APP_DISPNAME)
|
||||
qApp.setApplicationVersion(APP_VERSION)
|
||||
qApp.description = APP_DESCR
|
||||
qApp.copyright = APP_COPYRIGHT
|
||||
qApp.website = APP_WEBSITE
|
||||
qApp.setWindowIcon(QIcon(APP_ICON))
|
||||
qApp.setDesktopFileName(APP_DESKTOPFILENAME)
|
||||
|
||||
config = configparser.ConfigParser()
|
||||
|
||||
language = "Deutsch"
|
||||
|
||||
if os.path.exists(os.path.join(DIR_APPDATA, APP_DISPNAME, APP_DISPNAME + '.ini')):
|
||||
config.read(os.path.join(DIR_APPDATA, APP_DISPNAME, APP_DISPNAME + '.ini'))
|
||||
language = config['DEFAULT']['language']
|
||||
else:
|
||||
config['DEFAULT']['language'] = language
|
||||
if not os.path.exists(os.path.join(DIR_APPDATA, APP_DISPNAME)):
|
||||
os.makedirs(os.path.join(DIR_APPDATA, APP_DISPNAME))
|
||||
|
||||
with open(os.path.join(DIR_APPDATA, APP_DISPNAME, APP_DISPNAME + '.ini'), 'w') as configfile: # save
|
||||
config.write(configfile)
|
||||
|
||||
translator = QTranslator()
|
||||
|
||||
print("Current dir:", os.getcwd())
|
||||
if language == "Deutsch":
|
||||
print("Loading german language file.")
|
||||
translator.load(resource_path('./i18n/de_DE'))
|
||||
elif language == "Magyar":
|
||||
print("Loading hungarian langauge file.")
|
||||
translator.load(resource_path('./i18n/hu_HU'))
|
||||
else:
|
||||
print(f"Unknown language setting '{language}' -> defaulting to english language.")
|
||||
|
||||
qApp.installTranslator(translator)
|
||||
|
||||
winMain = MyMainWindow(language)
|
||||
# winMain.setWidth(600)
|
||||
# winMain.setHeight(625)
|
||||
winMain.resize(610, 640)
|
||||
winMain.show()
|
||||
sys.exit(qApp.exec_())
|
||||
main()
|
||||
|
|
|
@ -34,13 +34,10 @@ def show_about():
|
|||
msg = QMessageBox()
|
||||
msg.setIconPixmap(QPixmap(resource_path(APP_ICON)))
|
||||
|
||||
APP_NAME = qApp.translate("main", "Garage Space Calculator")
|
||||
APP_DESCR = qApp.translate("main", "Calculates available garage space")
|
||||
|
||||
text = "<p align='center'><h1>" + qApp.applicationDisplayName() + " " + \
|
||||
"<br>" + qApp.applicationVersion() + "</h1>" + \
|
||||
"<br>" + APP_NAME + "<br>" + \
|
||||
"<br>" + APP_DESCR + "<br>" + \
|
||||
"<br>" + qApp.applicationName() + "<br>" + \
|
||||
"<br>" + qApp.translate("main", "Calculates available garage space") + "<br>" + \
|
||||
"<br>" + qApp.translate("utils", "Idea") + ": Balazs Fabian" + "<br>" + \
|
||||
"<br>" + qApp.copyright + "<br>" \
|
||||
"<br> <a href='" + qApp.website + "'>" + qApp.website + "</a></p>"
|
||||
|
|
382
ui/main.ui
382
ui/main.ui
|
@ -13,237 +13,30 @@
|
|||
<property name="windowTitle">
|
||||
<string>Form</string>
|
||||
</property>
|
||||
<widget class="QGroupBox" name="gbResults">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>20</x>
|
||||
<y>440</y>
|
||||
<width>541</width>
|
||||
<height>121</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="title">
|
||||
<string>Ergebnis</string>
|
||||
</property>
|
||||
<property name="flat">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<widget class="QLabel" name="lblVol_Garage">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>10</x>
|
||||
<y>20</y>
|
||||
<width>140</width>
|
||||
<height>16</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Volumen der Garage:</string>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QLabel" name="lblVol_Stuff">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>10</x>
|
||||
<y>40</y>
|
||||
<width>140</width>
|
||||
<height>16</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Volumen der Gegenstände:</string>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QLabel" name="lblVol_Free">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>10</x>
|
||||
<y>60</y>
|
||||
<width>140</width>
|
||||
<height>16</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Freier Raum in der Garage:</string>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QLineEdit" name="efVol_Garage">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>174</x>
|
||||
<y>20</y>
|
||||
<width>113</width>
|
||||
<height>20</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
|
||||
</property>
|
||||
<property name="readOnly">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QLineEdit" name="efVol_Stuff">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>174</x>
|
||||
<y>40</y>
|
||||
<width>113</width>
|
||||
<height>20</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
|
||||
</property>
|
||||
<property name="readOnly">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QLineEdit" name="efVol_Free">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>174</x>
|
||||
<y>60</y>
|
||||
<width>113</width>
|
||||
<height>20</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
|
||||
</property>
|
||||
<property name="readOnly">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QLabel" name="lblM3">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>294</x>
|
||||
<y>20</y>
|
||||
<width>47</width>
|
||||
<height>13</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>m³</string>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QLabel" name="lblM3_2">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>294</x>
|
||||
<y>40</y>
|
||||
<width>47</width>
|
||||
<height>13</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>m³</string>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QLabel" name="lblM3_3">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>294</x>
|
||||
<y>60</y>
|
||||
<width>47</width>
|
||||
<height>13</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>m³</string>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QLineEdit" name="efWeight">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>174</x>
|
||||
<y>80</y>
|
||||
<width>113</width>
|
||||
<height>20</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
|
||||
</property>
|
||||
<property name="readOnly">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QLabel" name="lblM3_4">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>294</x>
|
||||
<y>80</y>
|
||||
<width>47</width>
|
||||
<height>13</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>kg</string>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QLabel" name="lblWeight">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>10</x>
|
||||
<y>80</y>
|
||||
<width>140</width>
|
||||
<height>16</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Gesamtgewicht:</string>
|
||||
</property>
|
||||
</widget>
|
||||
</widget>
|
||||
<widget class="QGroupBox" name="gbStuff">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>20</x>
|
||||
<y>120</y>
|
||||
<width>561</width>
|
||||
<height>301</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="title">
|
||||
<string>Dimensionen der zu verstauenden Gegenstände</string>
|
||||
</property>
|
||||
<property name="flat">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<layout class="QVBoxLayout" name="verticalLayout"/>
|
||||
</widget>
|
||||
<layout class="QVBoxLayout" name="verticalLayout_2">
|
||||
<item>
|
||||
<widget class="QGroupBox" name="gbGarage">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>20</x>
|
||||
<y>20</y>
|
||||
<width>561</width>
|
||||
<height>91</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="minimumSize">
|
||||
<size>
|
||||
<width>0</width>
|
||||
<height>91</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="maximumSize">
|
||||
<size>
|
||||
<width>16777215</width>
|
||||
<height>91</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="title">
|
||||
<string>Dimension der Garage</string>
|
||||
</property>
|
||||
<property name="flat">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<layout class="QHBoxLayout" name="horizontalLayout">
|
||||
<item>
|
||||
<widget class="QTableWidget" name="tableGarage">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>10</x>
|
||||
<y>23</y>
|
||||
<width>351</width>
|
||||
<height>58</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Preferred" vsizetype="Minimum">
|
||||
<horstretch>0</horstretch>
|
||||
|
@ -256,6 +49,12 @@
|
|||
<height>58</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="maximumSize">
|
||||
<size>
|
||||
<width>16777215</width>
|
||||
<height>58</height>
|
||||
</size>
|
||||
</property>
|
||||
<row>
|
||||
<property name="text">
|
||||
<string>Garage</string>
|
||||
|
@ -277,7 +76,156 @@
|
|||
</property>
|
||||
</column>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QGroupBox" name="gbStuff">
|
||||
<property name="title">
|
||||
<string>Dimensionen der zu verstauenden Gegenstände</string>
|
||||
</property>
|
||||
<property name="flat">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<layout class="QVBoxLayout" name="verticalLayout"/>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QGroupBox" name="gbResults">
|
||||
<property name="title">
|
||||
<string>Ergebnis</string>
|
||||
</property>
|
||||
<property name="flat">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<layout class="QGridLayout" name="gridLayout">
|
||||
<item row="2" column="3">
|
||||
<widget class="QLabel" name="lblM3_3">
|
||||
<property name="text">
|
||||
<string>m³</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="1">
|
||||
<widget class="QLabel" name="lblVol_Garage">
|
||||
<property name="text">
|
||||
<string>Volumen der Garage:</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="4">
|
||||
<spacer name="horizontalSpacer">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>40</width>
|
||||
<height>20</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
<item row="0" column="0">
|
||||
<spacer name="horizontalSpacer_2">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>40</width>
|
||||
<height>20</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
<item row="3" column="3">
|
||||
<widget class="QLabel" name="lblM3_4">
|
||||
<property name="text">
|
||||
<string>kg</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="3">
|
||||
<widget class="QLabel" name="lblM3_2">
|
||||
<property name="text">
|
||||
<string>m³</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="3" column="1">
|
||||
<widget class="QLabel" name="lblWeight">
|
||||
<property name="text">
|
||||
<string>Gesamtgewicht:</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="3">
|
||||
<widget class="QLabel" name="lblM3">
|
||||
<property name="text">
|
||||
<string>m³</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="2">
|
||||
<widget class="QLineEdit" name="efVol_Free">
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
|
||||
</property>
|
||||
<property name="readOnly">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="3" column="2">
|
||||
<widget class="QLineEdit" name="efWeight">
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
|
||||
</property>
|
||||
<property name="readOnly">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="1">
|
||||
<widget class="QLabel" name="lblVol_Stuff">
|
||||
<property name="text">
|
||||
<string>Volumen der Gegenstände:</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="2">
|
||||
<widget class="QLineEdit" name="efVol_Garage">
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
|
||||
</property>
|
||||
<property name="readOnly">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="2">
|
||||
<widget class="QLineEdit" name="efVol_Stuff">
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
|
||||
</property>
|
||||
<property name="readOnly">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="1">
|
||||
<widget class="QLabel" name="lblVol_Free">
|
||||
<property name="text">
|
||||
<string>Freier Raum in der Garage:</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<tabstops>
|
||||
<tabstop>tableGarage</tabstop>
|
||||
|
|
Loading…
Reference in a new issue