Qt-Designer (unterschiedliche Abstände von einzelnen Elementen)

Python und das Qt-Toolkit, erstellen von GUIs mittels des Qt-Designers.
Antworten
PythonDonald
User
Beiträge: 27
Registriert: Donnerstag 20. Juni 2019, 07:35

Hallo liebe Forumsbewohner,


ich benutze auf meinem Raspberry den Qt-Designer und PyQt, um mein Oberfläche für mein Python-Programm zu erstellen. Dieses funktioniert soweit auch alles einwandfrei. Jedoch habe ich Probleme mit der Darstellung. Wenn ich mir alles schön im Designer zurechtrücke und dann im Programm öffne, sind die Abstände und Ausrichtungen nicht wie gewünscht.


Die Felder sind weit auseinander gezogen. Ich habe alle Objekte verbunden (rote Kästen) und dem Fenster am Ende ein Layout verpasst.
Kann mir einer sagen, woran das liegt oder welche Einstellung ich falsch gesetzt habe?



LG Raspimaxnum ;)
Benutzeravatar
__blackjack__
User
Beiträge: 13111
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@PythonDonald: Aus der Beschreibung wird zumindest mir nicht klar was Du da jetzt konkret gemacht hast. Der Designer ist nicht dazu da sich alles Pixelgenau zurecht zu rücken und es sieht auf verschiedenen Plattformen oder mit verschiedenen Stilen und auch ob nun im Designer oder im Programm geladen nicht immer alles exakt gleich aus. Das ist auch gar nicht gewollt, da nicht wirklich möglich.

Wenn Felder weit auseinandergezogen sind, dann weil der Platz dafür da ist. Warum der da ist, kann man so nicht beantworten.
„All religions are the same: religion is basically guilt, with different holidays.” — Cathy Ladman
PythonDonald
User
Beiträge: 27
Registriert: Donnerstag 20. Juni 2019, 07:35

Ok ich dachte das wäre mit dem Designer mehr oder weniger möglich. Trotzdem vielen Dank für deine Antwort :)
Benutzeravatar
__blackjack__
User
Beiträge: 13111
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@PythonDonald: Im Designer ist letztendlich nicht mehr möglich als das was man auch mit Code erreichen kann. Das alles exakt überall gleich aussieht ist ja auch gar nicht nötig, und Ausrichtungen und Abstände kann man ja gestalten, aber eben nicht absolut, sondern relativ, damit das auch überall ”gleich” aussieht, also die Anordnung gleich ist.

Wenn Du *konktete* Probleme zeigst, könnte man vielleicht auch konkret weiterhelfen.
„All religions are the same: religion is basically guilt, with different holidays.” — Cathy Ladman
PythonDonald
User
Beiträge: 27
Registriert: Donnerstag 20. Juni 2019, 07:35

Ich habe zwei Bilder, aber die kann man hier nicht posten oder?
__deets__
User
Beiträge: 14542
Registriert: Mittwoch 14. Oktober 2015, 14:29

Doch. Kann man. Die muss man bei einem image-hoster oder so hochladen, und dann per img-Tag im vollstaendigen Editor einbinden. Kontrolle ob's klappt ist eine gute Idee.
Benutzeravatar
snafu
User
Beiträge: 6740
Registriert: Donnerstag 21. Februar 2008, 17:31
Wohnort: Gelsenkirchen

Zusätzlich wäre auch die *.ui-Datei hilfreich.
Auerhahn
User
Beiträge: 31
Registriert: Dienstag 23. Juli 2019, 06:48

__blackjack__ hat geschrieben: Donnerstag 27. Juni 2019, 10:28 Der Designer ist nicht dazu da sich alles Pixelgenau zurecht zu rücken und es sieht auf verschiedenen Plattformen oder mit verschiedenen Stilen und auch ob nun im Designer oder im Programm geladen nicht immer alles exakt gleich aus.
Aber kann man wenigstens erreichen, dass die GUI, die man mit dem Designer unter Windows anlegt, unter Windows so aussieht, wie man sie eingerichtet hat? In den Büchern und Tutorials ist das immer kein Problem. Aber wenn man die Beispiele nachbaut, sieht es nicht so aus. Wenn ich sowieso alle Teile der GUI im Programm »zu Fuß« platzieren muss, und auf die richtige Größe bringen muss, wozu gibt es dann den Designer?
Benutzeravatar
__blackjack__
User
Beiträge: 13111
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@Auerhahn: Man muss im Programm weder zu Fuss platzieren noch auf die richtige Grösse bringen. Und den Designer gibt es a) damit man nicht Tonnen an Quelltext schreiben muss unter dem sich die meisten Leute beim Lesen die (relative) Anordnung der GUI nicht vorstellen können, und b) das ganze unabhängig von der Programmiersprache machen kann.
„All religions are the same: religion is basically guilt, with different holidays.” — Cathy Ladman
Auerhahn
User
Beiträge: 31
Registriert: Dienstag 23. Juli 2019, 06:48

Aha. Ja, so hatte ich mir das auch vorgestellt. Die Frage ist nur, was man tun muss, damit die GUI, die man mit dem Designer erstellt, dann auch so aussieht, wie man sie erstellt hat. Denn wenn das nicht so ist, hat das ganze (scheint mir zumindest) doch wenig Sinn. Und das, was ich erhalte, wenn ich die erstellte GUI in meine Skript einbinde, hat so gut wie nichts mit dem zu tun, was ich gebaut habe. Mir würde je eine Anleitung genügen, die zeigt, wie das geht. Ich habe inzwischen ziemlich viele probiert, aber keine löst dieses Problem oder geht auch nur entfernt darauf ein. Buttons usw. man platzieren kann und soll, und wie man das Ergebnis in das Skript einbindet, dann kommt eine Abbildung, die angeblich zeigt, wie das dann aussieht, was ich tatsächlich erhalte, hat aber keine Ähnlichkeit mit dieser Abbildung, obwohl die Sache im Designer ganz identisch aussah. Daher ist die Frage, ob es irgendeine Anleitung für den Einstieg gibt, die beschreibt, wie das Programm funktioniert. Ich kann mir die Divergenz nur so erklären, dass alle Erläuterungen den entscheidenden Punkt überspringen. Vielleicht sind es aber auch mehrere Punkte. Keine Ahnung.
__deets__
User
Beiträge: 14542
Registriert: Mittwoch 14. Oktober 2015, 14:29

Da du keinen Code/UI-Datei zeigst, kann man nur mutmassen. Es gibt das offizielle Manual https://doc.qt.io/qt-5/qtdesigner-manual.html, und dort besonders interessant duerfte der Abschnitt zur Nutzung von Layouts https://doc.qt.io/qt-5/designer-layouts.html. Damit bekomme ich meine UIs so zusammen, wie ich sie haben will. Man muss halt mit layoutls, spacern undt ggf. Gewichten arbeiten. Wenn du die Erwartung hast, dass die Dinge pixelgenau irgendwo landen, dann wird das eher eng. So ist diese Technologie (designer und Qt im allgemeinen) nicht gedacht.
Auerhahn
User
Beiträge: 31
Registriert: Dienstag 23. Juli 2019, 06:48

Das heißt dann aber, dass sämtliche Anleitungen für den Einstieg, die im Netz kursieren und auch alle Bücher, die ich bisher darüber gelesen habe, grundsätzlich falsch sind, denn bei denen kommen zwar später auch Layouts vor, in den Anfängen aber wird einfach die Oberfläche zusammengeklickt und gestaltet und soll dann funktionieren. Ganz ohne Layouts. Die Anleitungen, die ich im Netz gefunden habe, beschränken sich alle darauf. Kann es sein, dass alle, die so etwas verfassen, nicht nachdenken und nicht nachprüfen., ob ihre Beispiele wirklich funktionieren? Und wenn das so ist, gibt es vielleicht trotzdem irgendetwas, was für den Einstieg geeignet ist? Das Handbuch ist sicher sehr gut, aber für den Anfänger jedenfalls nicht geeignet.
__deets__
User
Beiträge: 14542
Registriert: Mittwoch 14. Oktober 2015, 14:29

Hast du es gelesen, oder behauptest du einfach das es ungeeignet ist? Und um deine Frage zu beantworten, wie es um die Qualitaet des Codes, den man da draussen so findet, bestellt ist: joa. Der ist grauslig. Und je naeher dran am Raspberry PI, desto schlimmer wird es. Und wenn du hier ein bisschen querliest, was so zu diversen Buechern da draussen zu sagen ist, dann sind auch da ne Menge Mist.

Arbeite dich durch das manual, mach Experiment, stell .ui und Python Code hier vor mit einer konkreten Beschreibung, was nicht geht, und du lernst was. Die Suche nach dem perfekten Beispiel fuer DEIN Problem bei DEINEM Kenntnisstand - das ist ein 6er im Lotto. Kommt vor. Kann ich aber genauso wenig Tipps geben.
Auerhahn
User
Beiträge: 31
Registriert: Dienstag 23. Juli 2019, 06:48

Das Problem ist: Es handelt sich um ein Handbuch, nicht um ein Lehrbuch. Ein solches wäre mir – zumindest für den Anfang – lieber. Aber wenn es so ist, dass die alle nichts taugen, muss es eben so gehen. Dass ich die Lösung meiner Frage nicht fertig präsentiert bekommen werde, war mir schon klar. Aber wenn de Funktionsweise eines Programms anhand von Beispielen dargestellt wird, die allesamt nicht funktionieren, ist das schon seltsam. Andererseits... Nun, ja. Wir leben im 21. Jahrhundert, da ist gründliche Arbeit bekanntlich uncool geworden...

Also ich werde mal schauen, wie weit ich mit dem Handbuch komme.
Auerhahn
User
Beiträge: 31
Registriert: Dienstag 23. Juli 2019, 06:48

OK. Ich bin erst mal durch. Natürlich gibt es da noch einiges, was ich lernen könnte, aber die Frage, die mich im Moment beschäftigt, wird definitiv nicht behandelt: Wie kann ich erreichen, dass die Oberfläche, die ich mit dem Designer herstelle, in meinem Skript auch so angezeigt wird, wie ich sie eingerichtet habe. Bei dem einen knappen Beispiel ist das nicht der Fall, und das Handbuch kommt darauf auch nicht zu sprechen. Anscheinend bin ich im Irrtum, wenn ich meine, ein Werkzeug zur Gestaltung der einer Benutzeroberfläche, das mir die Möglichkeit gibt, die einzelnen Elemente so anzuordnen, wie ich es gern hätte, wäre dazu gedacht, eine Benutzeroberfläche zu gestalten, auf der die einzelnen Elemente so angeordnet sind, wie ich es gern hätte. Etwas seltsam kommt mir das ja vor, aber es ist nun mal das Ergebnis von ein paar Tagen Stochern im Nebel. Schade eigentlich...
__deets__
User
Beiträge: 14542
Registriert: Mittwoch 14. Oktober 2015, 14:29

Ich denke mal du machst da was falsch, aber 🤷‍♂️ - ich seh ja keine .ui Datei, etc.
Antworten