Seite 1 von 1
[gelöst] schnelle Ausgabe
Verfasst: 23. Juni 2005 17:07
von KarlBlau
Ich bin neu in der QT-Programmierung. Ich habe bisher Konsolenprogramme geschrieben.
Da konnte ich überall im Code einfach mit
eine schnelle Ausgabe machen. Sowas suche ich bei der Programmierung mit QT.
Ich habe mal zum Test einen cout im Code untergebracht. Scheinbar funktioniert dieser aber nicht, wenn man mit QT arbeitet.
Gruss, Karl
Verfasst: 23. Juni 2005 18:30
von FlorianBecker
Das eine ist STL, das andere Qt. Du kannst beides in deinem Programm verwenden. Qt bietet sogar STL Support.
Lösung 1:
STL genauso in Qt verwenden, wie du das mit nicht Qt machen würdest:
#include <iostream>
std::cout << "Hallo Welt" << std::endl;
Lösung 2:
Nimm qDebug() ist ziemlich gleich der Funktion printf in c.
Verfasst: 23. Juni 2005 23:39
von KarlBlau
Hi,
Danke für die Antwort. Was bedeutet 'STL'? Etwa 'Standard-Lib'? cout hatte ich vorher schon probiert. Das wäre mir nämlich am liebsten, denn mit dem arbeite ich bisher. Ich habe hier mein Test-Code gepostet. Mache ich was falsch? Es wird nichts gedruckt! Der Code wird compiliert und wenn ich die .exe starte, kommt ein Fenster mit Label 'Hello'. Aber nirgends steht was von 'Servus'. Hmm...
Code: Alles auswählen
#include <qapplication.h>
#include <qlabel.h>
#include <iostream>
int main(int argc, char **argv)
{
QApplication app(argc, argv, "NICHTS");
QLabel lab("Hello", 0);
std::cout << "Servus - Cout" << std::endl;
qDebug("Servus - qDebug");
lab.show();
app.setMainWidget(&lab);
return app.exec();
}
Hat jemand eine Idee?
Gruss, Karl
Verfasst: 23. Juni 2005 23:53
von FlorianBecker
Eine app.exec() instance wird unter Windows von der Shell detached.
Auf Deutsch:
Bein aufruf von app.exec() löst sich deine Anwendung von der MS Dos Eingabeaufforderung.
STL = Standard Template Library.
Wenn du die Anwendung debuggst, z.B. mit Visual Debugger, dann gibt er dir deine Texte mit aus.
Verfasst: 24. Juni 2005 00:06
von KarlBlau
D.h. also Eingabeaufforderung iss nich. Alles klar. Aber kann ich den Out-Stream nicht irgendwie auf ein QLabel umleiten? Mir geht es ja nur darum, mal kurz was auszugenen. Standardmäßig können QLabels nur (q)Strings, ich müsste z.B. auch viele Zahlen, oder eigene Klassen ausgeben. Also irgendwas mit dem Outstream wäre mir am liebsten.
Gruss, Karl
Verfasst: 24. Juni 2005 00:11
von FlorianBecker
QString( "%1%2%3%4%5" ).arg( "String" ).arg( 123 ).arg( double ) usw usw.
<< ersetzt Q*Stream. Mh, allerdings guck dir doch mal die Dokumentation an, dort steht, was du genau alles machen kannst. Denn das sind ja schließlich keine Probleme.