F
Flup
Gast
Hallo zusammen,
ich versuche mich gerade etwas in Qt einzuarbeiten und will dazu zunächst mal einige meiner Konsolenanwendungen auf GUI umrüsten. Dazu wäre es zunächst notwendig, dass ich in einem Fester einen Text anzeigen kann, der sich im Programmablauf ändern kann.
Dazu sieht der relevante Code derzeit so aus:
Das Problem daran: Ruf ich a.exec() auf, erscheint mein Fenster, wartet auf User Interaktion (was jetzt bei einem QLabel eh nicht möglich ist) und stoppt dadurch den Programmfluss. Bleibt der Befehl auskommentiert, läuft das Programm, das Fenster zeigt sich aber nicht.
Ich habe auf die Schnelle versucht, das Fenster in einem zweiten Thread zu starten, aber erstens meckert da noch der Compiler irgendwas von wegen C+0x Inkompatibilität durch den thread-include und zweitens will ich den Text oft ändern können, da erzeugt das ganze unnötigen overhead.
Lange Rede, kurzer Sinn: Gibt es einen weg, den exec() Aufruf zu vermeiden und das Fenster trotzdem anzuzeigen? Wenn nicht, wie geht man hier am besten vor?
Vielen Dank
ich versuche mich gerade etwas in Qt einzuarbeiten und will dazu zunächst mal einige meiner Konsolenanwendungen auf GUI umrüsten. Dazu wäre es zunächst notwendig, dass ich in einem Fester einen Text anzeigen kann, der sich im Programmablauf ändern kann.
Dazu sieht der relevante Code derzeit so aus:
Code:
int main(int argc, char **argv){
//[..]
QApplication a( argc, argv );
QLabel hello( "Hello world!");
hello.resize( 100, 30 );
hello.show();
//a.exec();
while(1) {
msgObj = s.receiveFrom(2048);
if (msgObj.msglen > 0) {
// Hier soll das Label geändert werden
s.sendTo(msgObj);
}
}
//[..]
Das Problem daran: Ruf ich a.exec() auf, erscheint mein Fenster, wartet auf User Interaktion (was jetzt bei einem QLabel eh nicht möglich ist) und stoppt dadurch den Programmfluss. Bleibt der Befehl auskommentiert, läuft das Programm, das Fenster zeigt sich aber nicht.
Ich habe auf die Schnelle versucht, das Fenster in einem zweiten Thread zu starten, aber erstens meckert da noch der Compiler irgendwas von wegen C+0x Inkompatibilität durch den thread-include und zweitens will ich den Text oft ändern können, da erzeugt das ganze unnötigen overhead.
Lange Rede, kurzer Sinn: Gibt es einen weg, den exec() Aufruf zu vermeiden und das Fenster trotzdem anzuzeigen? Wenn nicht, wie geht man hier am besten vor?
Vielen Dank
Zuletzt bearbeitet von einem Moderator: