QWidget in bestehendes Programm einbinden
-
not_a_hirsch
- Beiträge: 8
- Registriert: 4. Oktober 2005 07:15
QWidget in bestehendes Programm einbinden
Hallo Zusammen
Ich arbeite noch nicht lange mit QT. Kleine QT hab ich schon erstellt. Nun geht es aber darum dass ich eine GUi auf ein bestehendes C++ Progrämmchen erstellen muss. Das funktioniert ja. Aber wie kann auf die Methoden der Klassen zugegriffen werden? (vererbte Klasse)
Ist das überhaupt sinnvoll? (so war leider die Aufgabe, dass man auf diese Klasse eine neue mit QWidget erstellt)
Ich arbeite noch nicht lange mit QT. Kleine QT hab ich schon erstellt. Nun geht es aber darum dass ich eine GUi auf ein bestehendes C++ Progrämmchen erstellen muss. Das funktioniert ja. Aber wie kann auf die Methoden der Klassen zugegriffen werden? (vererbte Klasse)
Ist das überhaupt sinnvoll? (so war leider die Aufgabe, dass man auf diese Klasse eine neue mit QWidget erstellt)
Zuletzt geändert von not_a_hirsch am 4. Oktober 2005 16:26, insgesamt 1-mal geändert.
-
not_a_hirsch
- Beiträge: 8
- Registriert: 4. Oktober 2005 07:15
Ok ich versuchs ...
Ich musste ein programm schreiben das das amerikanische und das deutsche Datumsformat ausgibt. Ich hatte eine Vorlage und zwar dass die Hauptklasse Datum ist und dann an DatumFormat vererbt. Nun das ist bis jetzt ok. Das läuft.
Nun musste ich eine neue Klasse erstellen die von QWidget erbt und eine GUI für dieses Programm erstellen. Nun hab ich folgendes Problem:
In dem DatumFormat habe ich die Methoden die das Datum in einen String verwandeln und ausgeben. Nun will ich diese Methoden und Objekte etc in der FormatGUI zur Verfügung haben. Nur wie? Ich blick einfach nicht mehr durch
Ich musste ein programm schreiben das das amerikanische und das deutsche Datumsformat ausgibt. Ich hatte eine Vorlage und zwar dass die Hauptklasse Datum ist und dann an DatumFormat vererbt. Nun das ist bis jetzt ok. Das läuft.
Nun musste ich eine neue Klasse erstellen die von QWidget erbt und eine GUI für dieses Programm erstellen. Nun hab ich folgendes Problem:
In dem DatumFormat habe ich die Methoden die das Datum in einen String verwandeln und ausgeben. Nun will ich diese Methoden und Objekte etc in der FormatGUI zur Verfügung haben. Nur wie? Ich blick einfach nicht mehr durch
-
FlorianBecker
- Beiträge: 1213
- Registriert: 2. Dezember 2004 10:54
- Kontaktdaten:
Alter Schwede!
ich habe eine Klasse MyDatum, diese beinhaltet irgend welche Methoden, die ich brauche. Also erstelle ich eine Instanz dieser Klasse und greife auf die Methoden, die ich brauche, zu:
// hier kein Qt
MyDatum d;
std::string s = d.getDatum();
//Qt:
QLineEdit * myOutputWidget= new QLineEdit(0);
myOutputWidget->setText( s.c_str() );
das war's!
ich habe eine Klasse MyDatum, diese beinhaltet irgend welche Methoden, die ich brauche. Also erstelle ich eine Instanz dieser Klasse und greife auf die Methoden, die ich brauche, zu:
// hier kein Qt
MyDatum d;
std::string s = d.getDatum();
//Qt:
QLineEdit * myOutputWidget= new QLineEdit(0);
myOutputWidget->setText( s.c_str() );
das war's!
-
not_a_hirsch
- Beiträge: 8
- Registriert: 4. Oktober 2005 07:15
Wowowow immer mit der Ruhe...
(mit so 'nem Akzent betont, wie Chekov es tun würde)
Also hirsch, wir QTler machen gerne alles was wir machen mit QT.
Das heißt, wenn es um irgendwas mit einem Datum geht,
dann benutzen wir die Klasse QDate.
Weil die ganz tolle Sachen kann, ist dir zu empfehlen,
dass einfach auch so zu machen.
Fall du natürlich gerne deine alte Klasse "Date" nutzen möchtest,
solltest du dir das einfach so vorstellen,
dass QT dir dazu dient, einen QString (bzw. String) vom Nutzer zu holen (z.B. mit QLineEdit)
und dein Ergebnis (z.B. mit einem QTextEdit) wieder auszugeben.
Das gleiche (nur einfacher *g*) gilt für Zahlen z.B. mit QSpinBox.
Falls du jetzt das Problem bemerkst, dass QT mit QStrings arbeitet,
du aber Strings brauchst, dann schau dir in der QT Dokumentation die
Klasse QString mal genauer an. Da gibt es z.B.
QString::toStdString()
und dank string::c_str() kannst du den QString Konstruktor verwenden.
HENNING
(mit so 'nem Akzent betont, wie Chekov es tun würde)
Also hirsch, wir QTler machen gerne alles was wir machen mit QT.
Das heißt, wenn es um irgendwas mit einem Datum geht,
dann benutzen wir die Klasse QDate.
Weil die ganz tolle Sachen kann, ist dir zu empfehlen,
dass einfach auch so zu machen.
Fall du natürlich gerne deine alte Klasse "Date" nutzen möchtest,
solltest du dir das einfach so vorstellen,
dass QT dir dazu dient, einen QString (bzw. String) vom Nutzer zu holen (z.B. mit QLineEdit)
und dein Ergebnis (z.B. mit einem QTextEdit) wieder auszugeben.
Das gleiche (nur einfacher *g*) gilt für Zahlen z.B. mit QSpinBox.
Falls du jetzt das Problem bemerkst, dass QT mit QStrings arbeitet,
du aber Strings brauchst, dann schau dir in der QT Dokumentation die
Klasse QString mal genauer an. Da gibt es z.B.
QString::toStdString()
und dank string::c_str() kannst du den QString Konstruktor verwenden.
HENNING
-
not_a_hirsch
- Beiträge: 8
- Registriert: 4. Oktober 2005 07:15
Vielen Dank Henning
Ich werde es nun mit QLineEdit versuchen. Viiiiiielen Dank für die Tipps
Ich werde es nun mit QLineEdit versuchen. Viiiiiielen Dank für die Tipps
Zuletzt geändert von not_a_hirsch am 4. Oktober 2005 20:32, insgesamt 1-mal geändert.
Oehmmm...wie bitte was?not_a_hirsch hat geschrieben:Nur ist es meine Aufgabe genau das Gegenteil (ich weiss das ist nicht gerade logisch).
...was soviel heisst, wie du willst nicht?not_a_hirsch hat geschrieben: Wie schon gesagt ich bin QT-Anfängerin und muss ob ich will oder nicht programmieren![]()
Wo sind denn die Klassen Datum und DatumFormat von denen du geredet hast?
Goos
-
not_a_hirsch
- Beiträge: 8
- Registriert: 4. Oktober 2005 07:15
Hehe, klasse...das heisst dann, wass dein Problem geloest ist, ja?not_a_hirsch hat geschrieben:Na die hab ich wieder rausgelöscht...
Is aber immer auch die Frage, ob mans nicht will, weil mans nicht kapiert....oder ob mans nicht kapiert, weil mans nicht willnot_a_hirsch hat geschrieben:Ganz genau. Da ich es einfach nicht kapiere.
Goos
-
not_a_hirsch
- Beiträge: 8
- Registriert: 4. Oktober 2005 07:15
Ich bin ein sehr toleranter Mensch, aber irgendwann ist es einfach vorbei...
Hoer mal Hirsch, liest du ueberhaupt, was man dir antwortet? Oder haste nur Langweile und willst den Leuten nur auf den Sack gehen? Mehr Informationen kann man zu so einem Thema nicht erwarten. Wenn du nicht in der Lage bist, eine Klassenfunktion aufzurufen, dann musst du dich im Leben auf einem anderen Gebiet beweisen. Hier wird's nix.
Tut mir leid!
Hoer mal Hirsch, liest du ueberhaupt, was man dir antwortet? Oder haste nur Langweile und willst den Leuten nur auf den Sack gehen? Mehr Informationen kann man zu so einem Thema nicht erwarten. Wenn du nicht in der Lage bist, eine Klassenfunktion aufzurufen, dann musst du dich im Leben auf einem anderen Gebiet beweisen. Hier wird's nix.
Tut mir leid!