2016-08-31 4 views
-1

Ich bin ein C++ Neuling (idk was zählt als ein Neuling um ehrlich zu sein, aber wissen über 95% von wie C++ funktioniert, aber bin noch neu beim Schreiben von Programmen), und habe kürzlich begonnen, mit GUIs herumzualbern.Ich schreibe eine Qt-Anwendung in rohen C++ (no qml)

Ich habe eine Windows-Anwendung gemacht, die gut funktioniert, aber zusätzlich zu ein bisschen unbequem zu Zeiten frustriert es mich, dass es nur unter Windows funktioniert.

Ich versuche QT, und nach einer Stunde Googeln und Suchen in ihren Tutorials, ich kann nicht finden, eine Möglichkeit, ein Programm mit rohen C++ - Code (keine qml oder irgendwelche Sachen wie das) zu schreiben.

Was ich will, würde wie für die Anzeige von qt Objekten so etwas wie Funktionen wäre:

displaybutton(xcoordinates,ycoordinates,button_object_by_reference); 

Wenn ich zu allgemein, wäre es schön zu wissen, was ich vorher mit diesem Thread geschlossen angeben.

bearbeiten: Okay, so http://doc.qt.io/qt-4.8/examples-widgets.html ist toll, aber ist schlecht für mich, weil ich immer noch nicht wissen, die Grundlagen der qt. Dinge wie einfach, wie das Hauptfenster zum Beispiel funktioniert, wie Klassen angezeigt werden (brauche ich ein Layout, oder ist das überhaupt eine schlechte Frage). Die Beispiele sind gut, um besser zu verstehen, was implizit mit Qt zusammenhängt, aber es ist immer noch nicht einfach, die Grundlagen zu lernen (was ich teilweise habe, aber es ist langweilig, auf die Beispiele zurückzublicken und herauszufinden, wie etwas funktionieren sollte) natürlich sein ist getan). Also, wo würde ich einen Überblick darüber finden, wie die Umwelt funktioniert?

so im Grunde, "wie funktioniert qt, aber nicht mit qml zu erklären, nur mit C++ zu erklären."

+1

Sie sollten etwas mehr Forschung betreiben, um diese Frage weniger weit zu machen. Versuchen Sie [Dokumentation] (http://stackoverflow.com/documentation/qt/902/introduction-to-qt/12519/hello-world#t=2016083121000629169). – Laurel

+0

Wahrscheinlich möchten Sie QtWidgets, nicht QtQuick. –

Antwort

4

Sie sollten sich die Widgets Beispiele anschauen. http://doc.qt.io/qt-4.8/examples-widgets.html

In den wenigen, die ich ausgewählt habe, werden alle Widgets nativ in C++ erstellt. Zum Beispiel im Fenster "windowflags" (http://doc.qt.io/qt-4.8/qt-widgets-windowflags-example.html). Es zeigt, wie man einen Knopf macht.

Für Layouts müssen Sie in die QT-Layout-Optionen schauen. Ich bevorzuge es, Designer zu verwenden, um ein Gefühl dafür zu bekommen, wie die Objekte aussehen werden, wenn sie platziert werden, dann schreibe normalerweise mein eigenes Layout. Wieder aus dem Beispiel

die Schaltfläche, um die GUI hinzuzufügen
QHBoxLayout *bottomLayout = new QHBoxLayout; 
bottomLayout->addStretch(); // Fill entire area 
bottomLayout->addWidget(quitButton); // Place our button in that area 
setLayout(bottomLayout); // Push layout to main GUI object. 
+0

Sie haben vielleicht gerade meine Frage beantwortet, aber bevor ich eine halbe Stunde damit verbringe, die Beispiele in diesem Link zu lesen - wird es: 1: genug für jemanden sein, der kaum etwas über das Schreiben von QT weiß? 2: (um das so klar wie möglich zu machen) Erlauben Sie mir, eine ganze Anwendung in 1 Datei zu schreiben? und als Bonus: 3: Kann ich Apps erstellen, die richtig funktionieren, egal wie groß die Pixel pro Zoll/Bildschirmgröße sind? Dies war ein Problem mit qml. Bearbeiten: oops, Sie haben Ihren Beitrag bearbeitet, während ich diesen Kommentar schrieb. Sie haben das vielleicht schon beantwortet. sry – Evan

+0

1. Qt ist ziemlich einfach von Prinzipien. Wenn Sie C++ kennen, sollten Sie in der Lage sein, Qt zu bekommen. Wenn Sie neu in C++ sind, würde ich etwas anderes zum Schreiben von GUIs vorschlagen. 1b. Wenn Sie den Code nicht wissen, warum nicht Qt WYSIWIG-Editor (Designer) verwenden, ist es sehr nützlich 2. Es hängt davon ab, wie groß die Anwendung. Sie können immer in eine Datei schreiben. Es ist vielleicht nicht die beste Praxis, aber es gibt keine Dateibegrenzung für C++ – Dvstin

+2

Das würde erfordern, dass Sie tatsächlich wissen, was Sie tun, also denke ich, die Antwort ist nein. Aber andererseits, da Qt * Ihnen erlaubt, alle diese Probleme zu lösen, kann die Antwort * mit ein bisschen Studium und Anstrengung "ja" werden. Außerdem ist "eine halbe Stunde Lernen" * nichts * - wenn man versucht, echte Probleme zu lösen, kann oft eine Woche oder ein Monat (oder mehr) des Studiums nötig sein - gewöhne dich daran. –

1

einen genauen Standort für einen Widget So gibt Sie so etwas wie diese

QPushButton *button = new QPushButton(this); 
button->setText("Try me"); 
button->move(30, 10); 
button->show(); 

Aber es ist besser zu verwenden Layouts so Ihr Layout wird tun können auf die Fenstergröße angepasst werden, können Sie hier darüber nachlesen http://doc.qt.io/qt-5/examples-layouts.html

Verwandte Themen