Darstellung/Scalierung Windows 10 vs Windows 11
In deinem ui-Code kommt ja gar kein Layout vor. Ich habe im Designer in der Symbolleiste oben einfach auf den Button fürs Grid Layout geklickt, auf deutsch steht da glaube ich Kacheln oder sowas. Und dann erst die Widgets ins Fenster gezogen.
@Snafu
Das ist ja das komische wenn ich deinen XML Code öffne ist da kein Grid sondern das Grid hat aus irgendeinem Grund die Klasse QWidget (aber s funktioniert und man sieht dem Strech Effeckt auch mit der Preview Funktion im Designer).
Hier ist mal ein Sceen Shot, wenn ich selber etwas mit einem Grid baue sieht das hingegen so aus https://postimg.cc/SjnNnRhT.
Aber selbst wenn ich selber was mit einem Grid bastle stretch sich da nichts. Hier mal der XML Code für ein simples Beispiel.
Das ist ja das komische wenn ich deinen XML Code öffne ist da kein Grid sondern das Grid hat aus irgendeinem Grund die Klasse QWidget (aber s funktioniert und man sieht dem Strech Effeckt auch mit der Preview Funktion im Designer).
Hier ist mal ein Sceen Shot, wenn ich selber etwas mit einem Grid baue sieht das hingegen so aus https://postimg.cc/SjnNnRhT.
Aber selbst wenn ich selber was mit einem Grid bastle stretch sich da nichts. Hier mal der XML Code für ein simples Beispiel.
Code: Alles auswählen
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>MainWindow</class>
<widget class="QMainWindow" name="MainWindow">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>259</width>
<height>100</height>
</rect>
</property>
<property name="windowTitle">
<string>MainWindow</string>
</property>
<widget class="QWidget" name="centralwidget">
<widget class="QWidget" name="gridLayoutWidget">
<property name="geometry">
<rect>
<x>10</x>
<y>10</y>
<width>239</width>
<height>80</height>
</rect>
</property>
<layout class="QGridLayout" name="gridLayout">
<item row="0" column="1">
<widget class="QPushButton" name="pushButton_2">
<property name="text">
<string>PushButton</string>
</property>
</widget>
</item>
<item row="0" column="0">
<widget class="QPushButton" name="pushButton">
<property name="text">
<string>PushButton</string>
</property>
</widget>
</item>
<item row="0" column="2">
<widget class="QPushButton" name="pushButton_3">
<property name="text">
<string>PushButton</string>
</property>
</widget>
</item>
</layout>
</widget>
</widget>
</widget>
<resources/>
<connections/>
</ui>
- __blackjack__
- User
- Beiträge: 13998
- Registriert: Samstag 2. Juni 2018, 10:21
- Wohnort: 127.0.0.1
- Kontaktdaten:
@GMAch: In dem XML hast Du ein QWidget in dem ein QWidget mit absoluter grösse und Position steckt und erst in *dem* sind die Buttons in einem Layout. Dieses absolut positionierte QWidget ändert seine Grösse nicht und damit natürlich auch dessen Inhalt nicht. Das ist einfach ein Widget zu viel.
Layouts sind keine Widgets. Die werden für ein Widgets gesetzt und regeln wie Kinder angeordnet werden.
Layouts sind keine Widgets. Die werden für ein Widgets gesetzt und regeln wie Kinder angeordnet werden.
“The best book on programming for the layman is »Alice in Wonderland«; but that's because it's the best book on anything for the layman.” — Alan J. Perlis
@GMAch:
Wie gesagt, du müsstest kein Layout in ein Fenster stecken, sondern dem Fenster ein Layout zuweisen. Also nichts von den Widgets nehmen, sondern weiter oben bei der waagerechten Symbolleiste oder sonst im Menü via Rechtsklick kann man das Layout des Fensters ändern.
Wie gesagt, du müsstest kein Layout in ein Fenster stecken, sondern dem Fenster ein Layout zuweisen. Also nichts von den Widgets nehmen, sondern weiter oben bei der waagerechten Symbolleiste oder sonst im Menü via Rechtsklick kann man das Layout des Fensters ändern.
- __blackjack__
- User
- Beiträge: 13998
- Registriert: Samstag 2. Juni 2018, 10:21
- Wohnort: 127.0.0.1
- Kontaktdaten:
@GMAch: Container? Und warum unintuitiv? Also mal davon abgesehen das einfach Widgets mit der Maus absolut platzieren ”intuitiver” ist, aber halt nicht funktioniert wenn das auch auf anderen Systemen laufen soll. Oder auch auf dem gleichen System wenn man das mehrsprachig macht, weil dann ja die Texte unterschiedlich lang sein können, und damit absolute Positionen und Grössen auch nicht funktionieren.
“The best book on programming for the layman is »Alice in Wonderland«; but that's because it's the best book on anything for the layman.” — Alan J. Perlis
@GMAch: Was sind Container? Ich kenne kein GUI-Framework, das ohne Layouts auskommt. Du musst dir vorstellen, dass du "beschreibst" was du haben möchtest und die Darstellung dem Framework überlässt.
Gerade im QT Designer ist das mit den Layouts relativ leicht verständlich. Erstens _siehst_ du ja, was gerade passiert. Die Elemente im Entwurf folgen dem Layout. Und du hast die Möglichkeit, eine Vorschau anzusehen.
Und ob ein Layout angewendet ist oder nicht, sieht man sehr gut in der Objektanzeige. Dort wird vor jedem Widget angezeigt, welches Layout verwendet wird. "Intuitiv" wird es dann, wenn man sich mit Thema beschäftigt. Jedes Widget hat ein Layout. Und in einem Layout könnem Elemente angeordnet werden. Und diese Elemente können auch Layouts sein.
Finde ich jetzt übersichtlich kompliziert.
Gerade im QT Designer ist das mit den Layouts relativ leicht verständlich. Erstens _siehst_ du ja, was gerade passiert. Die Elemente im Entwurf folgen dem Layout. Und du hast die Möglichkeit, eine Vorschau anzusehen.
Und ob ein Layout angewendet ist oder nicht, sieht man sehr gut in der Objektanzeige. Dort wird vor jedem Widget angezeigt, welches Layout verwendet wird. "Intuitiv" wird es dann, wenn man sich mit Thema beschäftigt. Jedes Widget hat ein Layout. Und in einem Layout könnem Elemente angeordnet werden. Und diese Elemente können auch Layouts sein.
Finde ich jetzt übersichtlich kompliziert.
Vermutlich ist mit Containern das hier gemeint:
https://doc.qt.io/qt-6/designer-using-containers.html
https://doc.qt.io/qt-6/designer-using-containers.html
- __blackjack__
- User
- Beiträge: 13998
- Registriert: Samstag 2. Juni 2018, 10:21
- Wohnort: 127.0.0.1
- Kontaktdaten:
Bei den meisten davon braucht's doch dann aber auch wieder ein Layout für den Inhalt vom Container und der Container selbst wird ja auch mit einem Layout angeordnet.
“The best book on programming for the layman is »Alice in Wonderland«; but that's because it's the best book on anything for the layman.” — Alan J. Perlis
Damit mein ich wie man dem MainWindow selbst ein Layout zuordnet.
Ich meine Frames.
Ich hatte in einem Video die Empfehlung gesehen, dass man für die Layouts unterhalb des Layouts des Hauptfensters, liebe Frames nehmen und die denen Layout zuordnen soll, als direkt Layouts zu nehmen.
Ob das wirklich besser ist keine Ahnung.
Ich würde sagen: "kommt darauf an..."
Wenn man eine Gruppe von Widgets von den anderen Widgets im Hauptfenster optisch [hat so ein Frame-Widget noch andere Funktionen?] abgrenzen möchte, dann ja. Aber da ist vielleicht die Group Box noch der schönere Container. Da kann man der Gruppe noch schön einen Namen/Title verpassen.
Wenn man eine Gruppe von Widgets von den anderen Widgets im Hauptfenster optisch [hat so ein Frame-Widget noch andere Funktionen?] abgrenzen möchte, dann ja. Aber da ist vielleicht die Group Box noch der schönere Container. Da kann man der Gruppe noch schön einen Namen/Title verpassen.
_______________________________________________________________________________
https://www.python-kurs.eu/index.php
https://learnxinyminutes.com/docs/python/ https://learnxinyminutes.com/docs/de-de/python-de/
https://quickref.me/python https://docs.python-guide.org/
- __blackjack__
- User
- Beiträge: 13998
- Registriert: Samstag 2. Juni 2018, 10:21
- Wohnort: 127.0.0.1
- Kontaktdaten:
Ansonsten ist ja auch `QWidget` ein Container. Also der mit dem wenigsten Zusatzgebimmel, einfach nur etwas das andere Widgets aufnimmt und selbst in anderen Containern angeordnet werden kann. Das ist ja auch das was der Designer automatisch einfügt bei so Sachen wie dem Tab-Widget dann in jedem Tab. QWidget wird im Designer in der Widget-Box auch unter der Kategorie „Containers“ angeboten.
“The best book on programming for the layman is »Alice in Wonderland«; but that's because it's the best book on anything for the layman.” — Alan J. Perlis
Hallo, gibt es da auch was Vergleichbares für Resource Files? Oder generiert man da immer noch Quelltext?__blackjack__ hat geschrieben: Mittwoch 28. Mai 2025, 15:29 Quelltext aus *.ui-Dateien generieren macht man eigentlich nicht mehr. Man lädt die *.ui-Datei zur Laufzeit mit `PyQt5.uic.loadUi()`.
- __blackjack__
- User
- Beiträge: 13998
- Registriert: Samstag 2. Juni 2018, 10:21
- Wohnort: 127.0.0.1
- Kontaktdaten:
@GMAch: Das habe ich bei Python noch nie gemacht. Bei C++ ist das nützlich weil man die Ressourcen dabei in die EXE kompiliert und dann nur noch eine Datei hat wo alles drin ist. Bei Python hat man dadurch halt ein Python-Modul mehr. Da kann man IMHO die Ressourcen auch einfach als Einzeldateien im Dateisystem behalten.
Edit: Ansonsten hat Qt eine ziemlich gute Dokumentation. Der Ressource-Compiler kann *.rcc-Dateien erstellen und `QResource` ist auch dokumentiert.
Edit: Ansonsten hat Qt eine ziemlich gute Dokumentation. Der Ressource-Compiler kann *.rcc-Dateien erstellen und `QResource` ist auch dokumentiert.
“The best book on programming for the layman is »Alice in Wonderland«; but that's because it's the best book on anything for the layman.” — Alan J. Perlis