Warum nicht Qt Creator?

Python und das Qt-Toolkit, erstellen von GUIs mittels des Qt-Designers.
Alfons Mittelmeyer
User
Beiträge: 1715
Registriert: Freitag 31. Juli 2015, 13:34

BlackJack hat geschrieben:@Alfons Mittelmeyer: Was willst Du denn machen? Eine GUI grafisch entwerfen oder ein C++-Programm schreiben? Je nach dem nimmt man dann halt das eine oder das andere.
Stimmt, Du bist das, der immer ieder schreibt, dass der qtcreator nur für C++ zu gebrauchen wäre und dabei QML völlig vergisst. Und dafür gibt es über PySide eine sehr gute Anbindung an Python. Außerdem ist der QML Code auch wesentlich besser lesbar als solche XML Files.

Etwa: https://wiki.qt.io/Category:PySide
Alfons Mittelmeyer
User
Beiträge: 1715
Registriert: Freitag 31. Juli 2015, 13:34

__deets__ hat geschrieben:Und jetzt kommt der Knaller: den Creator musst du dabei nich nicht mal installiert haben! Er. Hat. Damit. Nix. Zu. Tun.
Also, wenn ich mit einem Gui Builder eine GUI bilden will, dann möchte ich einen Gui Builder haben. Hat der qtcreator jetzt etwas mit einem GUI Builder zu tun? Oder hat der qtcreator einen integrierten Gui Builder, welchen ich auch ohne den qtcreator starten kann, sodass ich den qtcreator gar nicht brauche?
__deets__
User
Beiträge: 14522
Registriert: Mittwoch 14. Oktober 2015, 14:29

Wenn du einen GUI builder haben willst, KANNST du den Creator installieren. Du kannst aber auch nur den Designer nehmen. Der läuft auch alleine.

Dazu habe ich mich schon ausgelassen, lies diesen Thread nochmal.
Alfons Mittelmeyer
User
Beiträge: 1715
Registriert: Freitag 31. Juli 2015, 13:34

__deets__ hat geschrieben:Wenn du einen GUI builder haben willst, KANNST du den Creator installieren. Du kannst aber auch nur den Designer nehmen. Der läuft auch alleine.

Dazu habe ich mich schon ausgelassen, lies diesen Thread nochmal.
Ja aber ich möchte QML Output und die Python Anbindung soll dann über PySide sein.
BlackJack

@Alfons Mittelmeyer: Nein, ich bin das nicht der das immer wieder schreibt. Ich habe das hier jetzt einmal geschrieben.

Es mag sein das QML besser lesbar ist als das XML der *.ui-Dateien. Der Vergleich macht aber keinen Sinn, denn QML muss man als Mensch lesen und schreiben können. Das XML vom Designer muss man als Mensch weder lesen noch schreiben. Die Frage ist also eher ob man besser mit einem grafischen Werkzeug zurecht kommt um die GUI zusammen zu klicken, oder ob man lieber Quelltext dafür schreibt.
__deets__
User
Beiträge: 14522
Registriert: Mittwoch 14. Oktober 2015, 14:29

QML kann der Designer nicht. Schrieb ich aber auch schon. Und dafür will man auch keinen Designer (so wie man den für HTML auch nicht macht), weil man schnell previews machen kann (qmlscene) und weil man auch Logik in QML schreibt, das verträgt sich nicht mit einem Designer.
Alfons Mittelmeyer
User
Beiträge: 1715
Registriert: Freitag 31. Juli 2015, 13:34

BlackJack hat geschrieben:@Alfons Mittelmeyer: Nein, ich bin das nicht der das immer wieder schreibt. Ich habe das hier jetzt einmal geschrieben.

Es mag sein das QML besser lesbar ist als das XML der *.ui-Dateien. Der Vergleich macht aber keinen Sinn, denn QML muss man als Mensch lesen und schreiben können. Das XML vom Designer muss man als Mensch weder lesen noch schreiben. Die Frage ist also eher ob man besser mit einem grafischen Werkzeug zurecht kommt um die GUI zusammen zu klicken, oder ob man lieber Quelltext dafür schreibt.
QML muss man genausowenig als Mensch lesen und schreiben können. Wenn man aber etwas in der generierten GUI (XML oder QML) nacheditieren will, ohne gleich einen Gui Builder zu nehmen, findet man sich im QML File sicher wesentlich besser zurecht.

Mit dem QML File hat man aber erweiterte Möglichkeiten, etwa ein Python Dictionary an einen Repeater zu übergeben:
https://wiki.qt.io/Defining-and-using-c ... ide-in-QML
Alfons Mittelmeyer
User
Beiträge: 1715
Registriert: Freitag 31. Juli 2015, 13:34

__deets__ hat geschrieben:QML kann der Designer nicht. Schrieb ich aber auch schon. Und dafür will man auch keinen Designer (so wie man den für HTML auch nicht macht), weil man schnell previews machen kann (qmlscene) und weil man auch Logik in QML schreibt, das verträgt sich nicht mit einem Designer.
Naja, für statisches Layout kann man einen Gui Builder schon hernehmen. Da kann man dann die Anordnung sehen. Aber dynamisches und Logik muß man danach selber schreiben, was man dann auch in QML tun kann. Ein Gui Builder kann das freilich nicht.
__deets__
User
Beiträge: 14522
Registriert: Mittwoch 14. Oktober 2015, 14:29

Und schon wechselst du wieder in den gegoogelten Expertenmodus. Angesichts der Tatsache das du schon an den Grundlagen zu knabbern hattest vor 3 Posts eine bemerkenswerte Wandlung.

Hast du schon überhaupt ein einziges QML basiertes Programm geschrieben? Nein? Woher dann die Gewissheit, was man darin zu tun und zu lassen hat?

QML ist NICHT gedacht wie das XML des UI-Designers, sondern dafür gemacht, von Hand geschrieben zu werden. Da es sich dabei auch um Text handelt, KANN man das natürlich theoretisch generieren. Wie alles andere auch. PRAKTISCH tut das aber keiner, es gibt auch kein tooling dafür.
Alfons Mittelmeyer
User
Beiträge: 1715
Registriert: Freitag 31. Juli 2015, 13:34

__deets__ hat geschrieben:Und schon wechselst du wieder in den gegoogelten Expertenmodus. Angesichts der Tatsache das du schon an den Grundlagen zu knabbern hattest vor 3 Posts eine bemerkenswerte Wandlung.
Was heißt Expertenmodus? Was heißt Wandlung? Ich bin da überhaupt kein Experte, ich bin absoluter Neuling. Und was heißt Wandlung, da war überhaupt keine Wandlung. Ich ging davon aus, dass das mit QML und dessen Interface zu Python eine sehr gute Sache wäre. Nachdem zuerst sehr stark die Meinung vertreten wurde, dass das kaum einen Vorteil bräuchte, hatte ich dem übertrieben zugestimmt, mit stimmt, bringt überhaupt nichts. Damit erzeugt man Widerspruch, so dass dann jemand schreibt, so ist es aber auch nicht und dann die Vorzüge schildert. Das hat doch überhaupt nichts mit irgendwelchen Wandlungen zu tun.
__deets__ hat geschrieben:Hast du schon überhaupt ein einziges QML basiertes Programm geschrieben? Nein? Woher dann die Gewissheit, was man darin zu tun und zu lassen hat?
Bitte keine falschen Behauptungen aufstellen. Nirgendwo hatte ich geäußert, dass man irgendetwas tun oder lassen sollte. Ich hatte lediglich geäußert, dass man den statischen Gui Anteil auch mit einem Gui Builder erzeugen kann. Von Muß war nirgends die Rede oder dass man es gar lassen sollte, den statischen Gui Anteil mit der Hand zu schreiben. Bitte schreibe nicht so einen Quark darüber, was ich angeblich geschrieben hätte.
__deets__ hat geschrieben:QML ist NICHT gedacht wie das XML des UI-Designers, sondern dafür gemacht, von Hand geschrieben zu werden. Da es sich dabei auch um Text handelt, KANN man das natürlich theoretisch generieren. Wie alles andere auch. PRAKTISCH tut das aber keiner, es gibt auch kein tooling dafür.
Natürlich gibt es kein Tooling dafür, dass man ein ganzes Programm generieren könnte. Es gibt eben nur ein Tooling dafür, einen gewissen Teil des statischen Gui Anteils zu generieren, was aber auch praktisch doch gemacht wird, sonst würde man das wohl auch nicht anbieten. Und freilich ist QML dafür gemacht, von Hand geschrieben zu werden. Dies heißt aber nicht dass man deswegen alles von Hand schreiben muß, womit wir einmal wieder beim Muß sind, Sondern ein gewisser Anteil der statischen Gui läßt sich auch generieren. Und das macht auch Sinn, weil man nicht immer das Programm starten will, um zu sehen, ob das Widget jetzt richtig poitioniert ist oder noch etwas nach rechts oder unten soll, damit es paßt oder ob dieses oder das paßt oder nicht, wie Farbe, Schriftgröße und dergleichen. Ist doch gut, wenn man das gleich beurteilen kann.

Und außerdem ist auch noch gut, dass man da auch sieht, welche Optionen es für das Widget gibt und ausprobieren kann, wie sich etwas auswirkt. Ansonsten müße man ständig in irgendwelchen Dokumentationen nachlesen und kann es sich eventuell danach immer noch nicht genau vorstellen. So kann man die Auswirkung aber gleich sehen.
Alfons Mittelmeyer
User
Beiträge: 1715
Registriert: Freitag 31. Juli 2015, 13:34

Man kann von QML aus eine Pythonfunktion aufrufen. Ist es da möglich als Parameter auch eine Referenz auf ein Qt Widget zu übergeben? Ich hätte nämlich gerne, dass ich da das Containerwidget bekäme und ich dann in Python Bindings auf dessen unmittelbare Children machen könnte.
Antworten