Seite 2 von 2
Re: Darstellung/Scalierung Windows 10 vs Windows 11
Verfasst: Dienstag 3. Juni 2025, 13:58
von snafu
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.
Re: Darstellung/Scalierung Windows 10 vs Windows 11
Verfasst: Dienstag 3. Juni 2025, 14:38
von GMAch
@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.
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>
Re: Darstellung/Scalierung Windows 10 vs Windows 11
Verfasst: Dienstag 3. Juni 2025, 15:22
von __blackjack__
@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.
Re: Darstellung/Scalierung Windows 10 vs Windows 11
Verfasst: Dienstag 3. Juni 2025, 18:48
von snafu
@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.
Re: Darstellung/Scalierung Windows 10 vs Windows 11
Verfasst: Freitag 6. Juni 2025, 08:22
von GMAch
@Snafu @__blackjack__
Danke ich hab es jetzt hinbekommen. Und jetzt auch noch mal eine Version gebaut die statt der Layouts Container nutzt.
Ist ja irgendwie sehr unintuitiv das ganze ....
Re: Darstellung/Scalierung Windows 10 vs Windows 11
Verfasst: Freitag 6. Juni 2025, 09:01
von __blackjack__
@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.
Re: Darstellung/Scalierung Windows 10 vs Windows 11
Verfasst: Freitag 6. Juni 2025, 09:17
von sparrow
@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.
Re: Darstellung/Scalierung Windows 10 vs Windows 11
Verfasst: Freitag 6. Juni 2025, 18:21
von snafu
Re: Darstellung/Scalierung Windows 10 vs Windows 11
Verfasst: Freitag 6. Juni 2025, 20:20
von __blackjack__
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.
Re: Darstellung/Scalierung Windows 10 vs Windows 11
Verfasst: Samstag 7. Juni 2025, 10:38
von GMAch
__blackjack__ hat geschrieben: Freitag 6. Juni 2025, 09:01Und warum unintuitiv?
Damit mein ich wie man dem MainWindow selbst ein Layout zuordnet.
__blackjack__ hat geschrieben: Freitag 6. Juni 2025, 09:01Container?
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.
Re: Darstellung/Scalierung Windows 10 vs Windows 11
Verfasst: Samstag 7. Juni 2025, 11:03
von grubenfox
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.
Re: Darstellung/Scalierung Windows 10 vs Windows 11
Verfasst: Samstag 7. Juni 2025, 12:14
von __blackjack__
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.
Re: Darstellung/Scalierung Windows 10 vs Windows 11
Verfasst: Donnerstag 12. Juni 2025, 08:55
von GMAch
__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()`.
Hallo, gibt es da auch was Vergleichbares für Resource Files? Oder generiert man da immer noch Quelltext?
Re: Darstellung/Scalierung Windows 10 vs Windows 11
Verfasst: Donnerstag 12. Juni 2025, 09:28
von __blackjack__
@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.