Benutzer-Werkzeuge

Webseiten-Werkzeuge


de:qt

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
de:qt [2022/08/24 17:01] – [Label] roehnerde:qt [2023/05/09 14:50] (aktuell) – [Voraussetzung] roehner
Zeile 1: Zeile 1:
 ===== Voraussetzung ===== ===== Voraussetzung =====
-Zur Verwendung der modernen und leistungsfähigen Qt-Bibliothek muss man das Paket PyQt6 installieren. Dazu ruft man über das Werkzeuge-Menü von GuiPy den Befehl //Werkzeuge/Pakete mit PIP installieren// auf und gibt als Package Name //PyQt6// an.+Zur Verwendung der modernen und leistungsfähigen Qt-Bibliothek muss man das Paket PyQt6 installieren. Dazu ruft man über das Werkzeuge-Menü von GuiPy den Befehl //Werkzeuge/Pakete mit PIP installieren// auf und gibt als Package Name //PyQt6// an. Mit dem Befehl //pip list// können Sie sich die Liste der aktuell installierten Pakete anzeigen lassen.
  
-Alternativ installiert man das Paket PySide6 und ersetzt im Qt-Template PyQt6 durch PySide6. Das Qt-Template findet man in der Konfiguration unter Editor/Dateivorlagen.+Zusätzlich sollte man das Paket PySide6 installieren, um darauf basierenden Quellcode ausführen zu können. 
 + 
 +Eine der wichtigsten Änderungen in PyQt6, ist die Notwendigkeit, vollständig qualifizierte Namen für Aufzählungen und Flags zu verwenden. In PyQt5 und PySide2 konnte man zum Beispiel einfach Qt.DecorationRole oder Qt.AlignLeft schreiben. In PyQt6 funktioniert diese verkürzte Form nicht mehr, man muss jetzt Qt.ItemDataRole.DisplayRole bzw. Qt.Alignment.AlignLeft schreiben. Diese Änderung wirkt sich auf alle Enums und Flag-Typen in Qt aus. In PySide6 werden sowohl lange als auch kurze Namen weiterhin unterstützt. 
 + 
 +Möchten Sie lieber mit den verkürzten Formen arbeiten, so können Sie im Qt-Template PyQt6 durch PySide6 ersetzen. Das Qt-Template finden Sie in der Konfiguration unter Editor/Dateivorlagen.
  
 In der [[https://doc.qt.io/qtforpython/PySide6/QtWidgets/index.html#module-PySide6.QtWidgets|Dokumentation]] bzw. [[https://doc.qt.io/qt-6/index.html|Dokumentation Qt]] findet man Detailinformationen zu Qt. In der [[https://doc.qt.io/qtforpython/PySide6/QtWidgets/index.html#module-PySide6.QtWidgets|Dokumentation]] bzw. [[https://doc.qt.io/qt-6/index.html|Dokumentation Qt]] findet man Detailinformationen zu Qt.
Zeile 58: Zeile 62:
 clear() löscht den gesamten Text. Die[[https://doc.qt.io/qtforpython/PySide6/QtWidgets/QPlainTextEdit.html|Dokumentation]] zeigt weitere Methoden. clear() löscht den gesamten Text. Die[[https://doc.qt.io/qtforpython/PySide6/QtWidgets/QPlainTextEdit.html|Dokumentation]] zeigt weitere Methoden.
 -------- --------
-==== Button ==== +==== PushButton ==== 
-{{:button.png}} Jedes Button-Widget erhält automatisch eine Ereignismethode, die beim Anklicken des Buttons aufgerufen wird. +{{:button.png}} Jedes PushButton-Widget erhält automatisch eine Ereignismethode, die beim Anklicken des Buttons aufgerufen wird. 
  
 Beispiel: Beispiel:
Zeile 74: Zeile 78:
 ==== CheckBox ==== ==== CheckBox ====
 {{:checkbutton.png}} {{:checkbutton.png}}
-Eine CheckBox kann ausgewählt sein oder nicht. Den aktuellen Zustand liefert die boolesche Methode //isChecked()//.+Eine CheckBox kann ausgewählt sein oder nicht. Den aktuellen Zustand liefert die boolesche Methode //isChecked()//, mit //setChecked(bool)// wird ein Wert gesetzt.
  
 Beispiel:  Beispiel: 
Zeile 146: Zeile 150:
  
 Mit einem ScrollBar kann man einen Bildlauf durchführen, bei dem der sichtbare Ausschnitt eines dargestellten Textes oder einer Grafik verschoben wird. Einige Widgets wie z. B. PlainTextEdit, ListBox oder TableWidget sind automatisch mit Scrollbars versehen.  Mit einem ScrollBar kann man einen Bildlauf durchführen, bei dem der sichtbare Ausschnitt eines dargestellten Textes oder einer Grafik verschoben wird. Einige Widgets wie z. B. PlainTextEdit, ListBox oder TableWidget sind automatisch mit Scrollbars versehen. 
 +----
 +==== Canvas ====
 +{{:canvas.png}}
 +Ein Canvas ist eine Zeichenfläche. Der Painter für die Zeichenfläche hat viele Zeichenmöglichkeiten.
 +
 +Beispiel:
 +<code python>
 +  def pushButton1_clicked(self, checked):
 +      self.canvas1Painter.drawEllipse(0, 0, 100, 100)  # zeichne einen Kreis
 +      self.canvas1Painter.drawLine(0, 100, 100, 0)     # zeichne eine Strecke
 +      self.canvas1.setPixmap(self.canvas1Pixmap)       # zeige die Zeichnung
 +</code>
 +
 +Ein Canvas besteht aus einem Label-Widget, das den Canvas aufnimmt. Dann haben wir ein QPixmap in der Größe des Labels, das die eigentliche Zeichenfläche ist. Und drittens haben wir den QPainter, der auf die QPixmap zeichnet.
 +
 +Wie im Beispiel gezeigt, kann man mit dem Painter ganz einfach zeichnen. Wenn die Zeichnung fertig ist, muss man sie wie folgt anzeigen:
 +<code python>self.canvas1.setPixmap(self.canvas1Pixmap)</code>
 ---- ----
 ==== Frame==== ==== Frame====
Zeile 155: Zeile 176:
 Eine GroupBox ist wie ein Frame ein Container für andere Widgets. Eine GroupBox hat aber zusätzlich einen Rahmen mit integriertem Label. Eine GroupBox ist wie ein Frame ein Container für andere Widgets. Eine GroupBox hat aber zusätzlich einen Rahmen mit integriertem Label.
  
-GuiPy stellt eine ButtonGroup für RadioButtons mit Hilfe einer GroupBox grafisch dar.+GuiPy stellt eine ButtonGroup für RadioButtons bzw. CheckBoxen mit Hilfe einer GroupBox grafisch dar.
 ---- ----
 ==== Slider ==== ==== Slider ====
Zeile 199: Zeile 220:
 Ein Menu-Widget ist ein Kontextmenü, das mit der rechten Maustaste aufgerufen wird. Es wird wie beim MenuBar-Widget über das Attribut //MenuItems// definiert. Ein Menu-Widget ist ein Kontextmenü, das mit der rechten Maustaste aufgerufen wird. Es wird wie beim MenuBar-Widget über das Attribut //MenuItems// definiert.
  
-Man kann jedem Widget ein Kontextmenü zuweisen. Dazu gibt man beim Attribut //ContextMenu// den Namen des Kontextmenüs an.+Man kann jedem Widget ein Kontextmenü zuweisen. Dazu gibt man beim Attribut //ContextMenu// den Namen des Menüs an.
 ---- ----
 ==== TabWidget==== ==== TabWidget====
Zeile 234: Zeile 255:
 {{:sizegrip.png}} Ein StatusBar-Widget stellt eine Stauszeile am unteren Rand des Anwednungsfensters dar. In der rechten unteren Ecke wird durch Punkte ein Griff zum Ändern der Größe des Anwendungsfensters angezeigt. {{:sizegrip.png}} Ein StatusBar-Widget stellt eine Stauszeile am unteren Rand des Anwednungsfensters dar. In der rechten unteren Ecke wird durch Punkte ein Griff zum Ändern der Größe des Anwendungsfensters angezeigt.
 ---- ----
 +===== Qt Controls =====
 ==== TextEdit ==== ==== TextEdit ====
 {{:textedit.png}} {{:textedit.png}}
de/qt.1661353270.txt.gz · Zuletzt geändert: 2022/08/24 17:01 von roehner