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

@ __Deets__: ja jetzt sind wir bei den Fakten, nämlich dass er keine Vorteile bietet im Zusammenhang mit nur Python. Denn Attribute zu haben ist besser als nach Widget IDs zu suchen. Und die Schnittstelle von Javascript nach Python bringt auch nichts, wenn man die GUI Logik nicht in Javascript programmiert. Aber es wird halt oft geschrieben, dass der Qt Creator gar nicht zu gebrauchen wäre.

Was ich eigentlich gesucht hatte, war, dass ich die GUI im Original im Designer oder Creator sehen könnte, dass also eine Combobox aufgehen würde, wenn ich draufdrücke. Aber das geht wohl da nicht, oder?
BlackJack

@Alfons Mittelmeyer: Wo wird oft geschrieben der Creator wäre gar nicht zu gebrauchen? Kann es sein das Du da wieder Aussagen irgendwo heraus liest die man so lesen *wollen* muss?

Doch man kann sich die GUI auch so anzeigen lassen das eine Combobox ausklappt wenn man darauf klickt. Dazu gibt's eine Vorschau unter „Form“ → „Preview…“.
__deets__
User
Beiträge: 14494
Registriert: Mittwoch 14. Oktober 2015, 14:29

Alfons Mittelmeyer hat geschrieben:@ __Deets__: ja jetzt sind wir bei den Fakten, nämlich dass er keine Vorteile bietet im Zusammenhang mit nur Python. Denn Attribute zu haben ist besser als nach Widget IDs zu suchen. Und die Schnittstelle von Javascript nach Python bringt auch nichts, wenn man die GUI Logik nicht in Javascript programmiert
Deine spezielle Form der Logik ist ... faszinierend. Aus einer Aussage (Creator hat keine Vorteile beim Einsatz von Python) schlägst du begründungslos Brücken zu etwas, das gar nicht diskutiert wurde: IDs vs Attribute (was auch immer genau du damit meinst), und das die Schnittstelle von Python zu QML/JS nix bringt. Was riesen Humbug ist. Natürlich bringt die was. Das man zB Modelle für Views in Python schreiben kann. Oder Worker-Threads (kann JS nicht). Oder überhaupt mit Qt arbeiten (benutzt nämlich alles das Qt MetaModell). oder oder oder.

Hier bitte PipiLangstrumpf Titelsong denken. Den Teil mit der Welt wie sie gefällt.
Alfons Mittelmeyer
User
Beiträge: 1715
Registriert: Freitag 31. Juli 2015, 13:34

__deets__ hat geschrieben:und das die Schnittstelle von Python zu QML/JS nix bringt. Was riesen Humbug ist. Natürlich bringt die was. Das man zB Modelle für Views in Python schreiben kann. Oder Worker-Threads (kann JS nicht).
Also was ist jetzt, bringt diese Schnittstelle viel für Python oder für JS. zuerst wurde ja behauptet, dass der Qt Creator keine Vorteile bringt, zumindest nicht für Python.
__deets__
User
Beiträge: 14494
Registriert: Mittwoch 14. Oktober 2015, 14:29

Nix ist jetzt. Der Creator ist eine IDE. Die kannst du sogar runterladen ohne Qt installiert zu haben. Die "Schnittstelle" und der Creator haben nichts miteinander zu tun. Insofern bist du hier auch nicht auf einen Widerspruch gestoßen.

Nochmal ganz langsam: du kannst Qt, Python (mit PyQt oder PySide als Bridge) und QML benutzen, um Programme zu entwickeln. Mit moderner, mächtiger GUI.

Und jetzt kommt der Knaller: den Creator musst du dabei nich nicht mal installiert haben! Er. Hat. Damit. Nix. Zu. Tun.
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: 14494
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: 14494
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: 14494
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