Inhaltsverzeichnis

QtDesigner Tricks

Installieren von PyQt in eine normale Python- Umgebung

In Linux

pip install pyqt6 pyside6 PyQt6Designer

in Windows

pip install pyqt6-tools

in Windows dann starten mit pyqt6-tools designer

Widgets in Layouts verpacken

Wenn man GUI- Oberflächen für Python mit dem QtDesigner macht, ist das ja fast einfach - fast…, denn die einzelnen Widgets jeweils in ihre jeweils übergeordneteten Layouts zu drücken, artet bei mir immer zu einem Akt der Verzweiflung aus, weil ich jedesmal vergessen habe, wie man vorgehen muß. Darum habe ich es mir jetzt mal aufgeschrieben:

Wenn man daran zerbricht, dass ein Layout partout nicht das übergeordnete Widget ausfüllen will: Das übergeordnete Widget mit der rechten Maustaste anklicken und dann Layout→Layout as Grid anwählen… 1)

Compilieren der .UI- Dateien

pyuic5 dialog.ui > dialog.py

Kleines Beispiel

import sys
 
from PyQt5.QtWidgets import (
	QApplication, QDialog, QMainWindow, QMessageBox
)
from PyQt5.uic import loadUi
 
from  SAEJ_2799_ui import Ui_MainWindow
 
class Window(QMainWindow, Ui_MainWindow):
	def __init__(self, parent=None):
		super().__init__(parent)
		self.setupUi(self)
		self.connectSignalsSlots()
 
	def connectSignalsSlots(self):
		self.pushButton_connect.clicked.connect(self.connect)
		self.pushButton_send.clicked.connect(self.send)
		self.pushButton_clear_log.clicked.connect(self.clear_log)
		self.action_About.triggered.connect(self.about)
 
 
if __name__ == "__main__":
	app = QApplication(sys.argv)
	win = Window()
	win.show()
	sys.exit(app.exec())

Unterschiede zwischen interner und externer, model based Datenhaltung

Es gibt UI Elemente, die ihre Daten intern speichern, und welche, die mit einem externen Datenmodell syncronisieren. Je nach Anwendung nimmt man das eine oder andere. Die einzelnen Elemente sind auf der QT- Website erklärt