Qt Creator

Du bist neu in der Welt von C++? Dann schau hier herein!
TerraG
Beiträge: 81
Registriert: 13. Oktober 2011 15:23

Qt Creator

Beitrag von TerraG »

Hi,

ich habe mit dem Qt Designer meine GUI erstellt und würde diese nun gerne mit dem Qt Creator bearbeiten. Wenn ich im Creator eine neue Datei erstelle oder ein Beispiel öffne dann sind gleich alle C++ Dateien (Klasse,Methoden) ja vorhanden, öffne ich aber die meine GUI (ui Datei) wird mir kein C++ Code, d.h. keine Klasse etc. dazu angezeigt. >Lediglich der "ui-Code" wird mir angezeigt. Kann ich den Creator dazu bringen mir aus dem ui-Code die Klasse und eine Aufrufmethode zu erstellen wie es bei einer neuen Datei bzw. einem Beispiel der Fall ist? Wie muss ich genau vorgehen?

Gruß
TerraG
Gruß
TerraG
DBGTMaster
Beiträge: 190
Registriert: 19. August 2010 10:00

Re: Qt Creator

Beitrag von DBGTMaster »

Nicht getestet. aber ich würde sagen:

Erstelle eine neue Designer- Datei samt C++ mit gleichen Namen wie deine Designer Datei und dann ersetze diese durch deine :=)-
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Re: Qt Creator

Beitrag von Christian81 »

Aus einer UI-datei wird nur ein Grundgerüst erzeugt. Eine komplette Klasse musst Du schon selbst erstellen. Siehe http://developer.qt.nokia.com/doc/qt-4. ... -file.html
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
TerraG
Beiträge: 81
Registriert: 13. Oktober 2011 15:23

Re: Qt Creator

Beitrag von TerraG »

Hi,

hab nun so eine .pro Datei erstellt und unter Forms meine .ui Datei angegeben. Wenn ich nun die .pro Datei öffne, wird aber keine C++ Klasse aus der .ui Datei erstellt, obwohl in der Anleitung ja folgendes geschrieben steht:
The special feature of this file is the FORMS declaration that tells qmake which files to process with uic. In this case, the calculatorform.ui file is used to create a ui_calculatorform.h file that can be used by any file listed in the SOURCES declaration.
Wie krieg ich das denn jetzt hin, dass mir die Klasse und eventuell die Mainmethode erstellt werden?
Gruß
TerraG
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Re: Qt Creator

Beitrag von Christian81 »

Es wird dir keine Klasse und schon gar kein main() erzeugt (wenn dir die 3 Zeilen zu viel sind... naja). Du musst, wie im Link beschrieben, selbst eine Klasse schreiben die dann die vom UI-File erzeugte Header-Datei inkludiert und instanziiert!
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
TerraG
Beiträge: 81
Registriert: 13. Oktober 2011 15:23

Re: Qt Creator

Beitrag von TerraG »

Ok, hab wohl mehr meinen Wunschtext gelesen :D. Werd mich dann nochmal damit beschäftigen.
Gruß
TerraG
TerraG
Beiträge: 81
Registriert: 13. Oktober 2011 15:23

Re: Qt Creator

Beitrag von TerraG »

Hi,

hab jetzt in meiner Projektdatei meine .ui file, .h file (Header), main.cpp file und natürlich die .pro file. Die main.cpp habe ich wie folgt geschrieben:
#include "ui_MeineUI.h"

int main(int argc, char *argv[])
{
QApplication app(argc, argv);
QTabWidget *TabWidget = new QTabWidget;
Ui::Ui_TabWidget ui;
ui.setupUi(QTabWidget *TabWidget);

TabWidget->show();
return app.exec();
}
Soweit ich das verstehe, erstellen doch die ersten beiden Zeilen in der Methode ein Objekt namens TabWidget. In der dritten Zeile ordne ich dem Objekt die Klasse zu, welche ich im Header mit Dateinamen angegeben habe und in der vierten Zeile führe ich die Methode setupUI aus der Klasse aus, mit der die einzelnen Elemente der Klasse einzeln definiert sind. Die letzten beiden Zeilen in der Methode zeige ich dann das Objekt an (show) und die app.exec ermöglicht das Weiterleiten von Eingaben in der GUI an andere Klassen.

Bekomme nun folgende Fehlermeldung beim Ausführen der Methode im Creator:
In Funktion >>int main(int,char**)<<
[main.o] Fehler 1
Hab ich den alles einigermaßen richtig, richtig verstanden und was muss ich abändern bzw. neu anlegen?

Gruß
TerraG
Gruß
TerraG
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Re: Qt Creator

Beitrag von Christian81 »

Im Link steht alles... :roll:
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
TerraG
Beiträge: 81
Registriert: 13. Oktober 2011 15:23

Re: Qt Creator

Beitrag von TerraG »

Hallöchen 8) ,

soweit ich das sehe, habe ich doch den direkten Ansatz (Direct Approach) vollends durchgeführt. Wenn ich irgendetwas übersehen habe, könntest mir dann sagen was anstatt nur zu schreiben alles steht im Link :roll: ? Wie gesagt, habe ich den direkten Ansatz durchgeführt, die GUI wird mir aber nicht angezeigt, da ich anscheinend einen Fehler in der mainfunktion main.cpp habe. Why does the function not show an object of the class I have constructed ? xD

Mal im Ernst: Ein Forum ist da um Fragen zu stellen und zu beantworten. Also was hab ich jetzt falsch gemacht bzw. muss ich einen anderen Ansatz nehmen etc.?
Gruß
TerraG
franzf
Beiträge: 3114
Registriert: 31. Mai 2006 11:15

Re: Qt Creator

Beitrag von franzf »

Ein Forum ist da um Fragen zu stellen und zu beantworten.
Der Fragende frägt und wünscht sich eine Antwort. Andere antworten - oder auch nicht. Die Antwort mag dem Fragenden passen oder nicht. Die Antwort kann eine komplette Lösung enthalten, oder aber auch nur einen Hinweis.
Wenn jetzt den potentiellen Antwortgebern entscheidende Angaben vorenthalten werden, wird die Antwort sicher NICHT in Richtung fertige Lösung tendieren. Hier fehlt die Fehlermeldung!

Code: Alles auswählen

In Funktion >>int main(int,char**)<<
[main.o] Fehler 1
Ja, es ist was passiert, aber WAS? Der Compiler sagt dir sicher GENAU was ihm nicht passt! Samt Zeilenangabe! Dann geht man in die Zeile und schaut nach was da steht.

Und jetzt poste BITTE die Fehlermeldung, sag uns welche Zeile im obigen Code angemeckert wird, dann können wir helfen. Ich wüßte zu 99% was bei dir falsch läuft, will aber gängeln, dass endlich die Leute Fehlermeldungen posten, und zweitens kann dein jetziger Fehler auch noch wo anders stecken.

GANZ WICHTIG:
Will der Fragende Hilfe, sollte er sich auch bei der Darlegung seines Problems bemühen.
NOCH WICHTIGER:
Vor dem Gang zum Forum sollte man auch mal versuchen zu verstehen, was einem der Compiler etc. vor den Latz knallt. Es ist mitunter recht hilfreich, was der ausgibt. Und wenn man mal halbwegs damit zurechtkommt, hat man auch sofort die Lösung.
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Re: Qt Creator

Beitrag von Christian81 »

Du hast den Ansatz 'Direct Approach' nicht durchgeführt da Du keine Klasse hast sondern nur eine main() - Funktion -> C++ Grundlagen! Und im Link steht es haarklein drin wie man vorzugehen hat. Man muss es nur durcharbeiten.
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
TerraG
Beiträge: 81
Registriert: 13. Oktober 2011 15:23

Re: Qt Creator

Beitrag von TerraG »

Hi,

hab das jetzt mal soweit hingekriegt, dass ich die GUI anzeigen kann und das mit dem einfachen Vererbungsansatz. Ich denke wenn man den ganzen Fehlercode zur Kompilierung haben will, muss man auf Kompilierung gehen (hab ich nun auch gerafft). Melde mich wieder wenn ich garnicht mehr weiter komme.

Schönen Abend,
Gruß
TerraG
TerraG
Beiträge: 81
Registriert: 13. Oktober 2011 15:23

Re: Qt Creator

Beitrag von TerraG »

Hallo,

kennt vielleicht jemand eine Liste der Methoden in c++ mit kleinen Erklärungen/Beispielen zu den Methoden?

Gruß
TerrraG
Gruß
TerraG
Feuer
Beiträge: 20
Registriert: 19. April 2011 08:08

Re: Qt Creator

Beitrag von Feuer »

Eine Liste der Methoden in C++???
Ich bin mir nicht sicher ob es das ist was du brauchst, aber hier mal ein Link zu allen Klassen die Qt bietet: http://doc.qt.nokia.com/4.7/classes.html
Ich glaube du musst erstmal verstehen was C++ überhaupt macht und was man damit anstellen kann, ich empfehle dir ein Buch zu kaufen oder im Internet Anfänger Tutorials durchzustöbern.

Gruß
TerraG
Beiträge: 81
Registriert: 13. Oktober 2011 15:23

Re: Qt Creator

Beitrag von TerraG »

C++ ist eine objektorientierte Programmiersprache, mit der man Programme (Software) für verschiedenste Anwendungen erstellen kann. Das geht von rein virtuellen Programmen bis zu Programmen für Maschinen, Anlagen etc. und wahrscheinlich noch vieles mehr. Die Programme können hierbei extrem komplex und kompliziert werden, sodass ganze Teams benötigt werden. Oft kann es dazu kommen, dass bereits geschriebene Klassen, damit deren Elemente und Methoden wieder oder in ähnlicher Form verwendet werden können um sich so viel Arbeit beim Programmieren eigener Anwendungen zu ersparen --> daher gibt es viele gespeicherte Klassen,Methoden etc, die in sogenannten Bibliotheken abgespeichert sind. Des weiteren versucht man wohl mehr oder weniger "Klassenhierarchien" anzulegen (fiktives Bsp.: Klasse Fahrrad ist Subklasse der Klasse Zweiradfahrzeuge, welche wiederum Subklasse der Klasse Fahrzeuge ist usw. ) - Eine Subklasse erbt hierbei alles von ihrer Basisklasse. Ein Vorteil der Objektorientierung ist, dass der Programmierer sich oft an der Realität orientieren kann, so sollte die Klasse Fahrrad aus dem Bsp. mit ihren Eigenschaften und Methoden den Eigenschaften und Möglichkeiten der reelen Fahrräder nahe kommen. Von nicht objektorientierten Programmiersprachen hab ich kein Plan xD.
Ist ein Programm nach den "Regeln" der Programmiersprache erstellt und wird ausgeführt, übersetzt der Compiler (selbst ein Programm) nach seiner Programmierung den Programmtext/Quelltext in Maschinensprache/code, welche der Rechner ausliest und nach seiner Programmierung wiederum ausführt.
Das ganze bietet natürlich ein großes Feld an Möglichkeiten, ein wirklich guter Programmierer kennt wohl genau den Aufbau der Programmiersprache und kann sich damit mal locker eigene Methoden erstellen, sollte er diese benötigen.

Das ist natürlich alles nur ein kleiner Umriss zu einer objektorientierten Programmiersprache bzw. Programmierung allgemein. So, ich mach dann mal weiter.

Einen guten Rutsch :D.
Gruß
TerraG
Antworten