PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Qt: Auf Konsole schreiben?


Gast
2005-09-23, 17:10:35
Hi,

wie kann ich denn in einer Qt-App auf die Konsole schreiben?


int main(int argc, char **argv)
{
QApplication app(argc, argv);

MainWidget main;
main.show();

std::cout << "test" << endl << "dfsdf" << endl << "dsfsdfds!";
return app.exec();
}

zeigt überhaupt keine Wirkung.

Ayn
2005-09-24, 02:48:51
örr probier mal printf() ?

Coda
2005-09-24, 06:44:38
Mit welchem OS denn? Ich nehme mal an Linux?

pH
2005-09-24, 12:56:21
örr probier mal printf() ?
Wieso sollte printf funken und cout nicht? Außerdem programmiere ich C++
Mit welchem OS denn? Ich nehme mal an Linux?
Erstmal Windows, später natürlich auch Linux. Aber das macht doch wohl keinen Unterschied, oder?

Ayn
2005-09-24, 19:32:47
villeicht weil du fürs printf() auf den stdio zurückgreifen kannst, der villeicht läuft. woher soll ich das wissen, warums mit cout net geht (obwohls eigentlich müsste). und das is ja mal hart egal ob du nun c, c++ oder c# programmierst, printf() kannst in verbindung mti der stdio.h immer verwenden (auch wenn cout schöner ist, da geb ich dir ja recht)

nur wenn du ein problem eingrenzen willst würde ich mal versuchen die ursache zu erarbeiten, u know :P

bye

edit: es kommt drauf an, wenn du visual c++ mit der mfc klassenbibli. verwendest machts ein unterschied.

Coda
2005-09-24, 20:15:06
villeicht weil du fürs printf() auf den stdio zurückgreifen kannst, der villeicht läuftostream und printf benützen den exakt gleichen stream. (solang das Program nichts daran ändert)

Erstmal Windows, später natürlich auch Linux. Aber das macht doch wohl keinen Unterschied, oder?Du wirst aus einem Win32-Program generell keinen Output auf die Konsole bekommen von der du es gestartet hast. Ich weiß nicht einmal ob sich das irgendwie umgehen lässt.

Wozu brauchst du das überhaupt? Debug-Zwecke? Dann nimm OutputDebugString.

Gast
2005-09-25, 11:57:56
Wozu brauchst du das überhaupt? Debug-Zwecke? Dann nimm OutputDebugString.

Es gibt QDebug, das waere wohl das richtige, OutputDebugString klingt wieder sehr nach window und wieos sollte er da Qt nehmen?

Coda
2005-09-25, 13:34:45
Weil es zum debuggen egal ist, wenn man es danach wieder entfernt?

Gast
2005-09-25, 18:47:38
[...]
Du wirst aus einem Win32-Program generell keinen Output auf die Konsole bekommen von der du es gestartet hast. Ich weiß nicht einmal ob sich das irgendwie umgehen lässt.
[...]
Ja, hab ich glatt vergessen. Bin eben zu Linux-verwöhnt ;)

Ayn
2005-09-25, 21:59:25
hmm und wie wärs damit ? http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dllproc/base/high_level_console_input_and_output_functions.asp

alternativ müsste das auch über ner named pipe gehen...

jaja, ich weis, drumrumcoden und so++

bye

edit: achja, winapi programmierung ist ja auch außer mode :P

nochmal edit: kannst nicht ne w32 konsolen application erstellen mit/unter qt ? ich hab mir das framework nie angeschaut, weil ich nie plattformübergreifend programmieren musste aber es muss doch irgendwie möglich sein plattformunabhängig etwas in konsolenfenster zu malen...

pH
2005-09-25, 22:30:21
Man macht für Qt ja eh eine Konsolenapplikation. (s. Codeschnipsel im 1. Post) Kein WINAPI WinMain(). Aber QApplication kapselt wohl die Win32-API, muss ja, sonst wär nix mit GUI. Und dann ist eben nix mehr mit Konsole.