我正在寫一個登錄窗口在Qt。Qt4登錄窗口
當用戶點擊OK,就應該關閉登錄窗口,顯示「連接到服務器...」微件,並打開主窗口一旦connecttoserver方法做了工作。
然而,構件只出現在主窗口所示,並立即消失(它甚至不應該接近!)
我怎麼解決這個問題呢?
void LoginWindow::blah()
{
close();
QWidget widget;
widget.show();
//calls to the "connecttoserver method"
Main *main = new Main(student->getInfo()[0], student->getInfo()[1], student->getInfo()[2], view);
main->show();
}
}
謝謝,現在窗口保持打開狀態。 但是,它仍然開放得太晚。 加載connecttoserver方法時,不顯示窗口... – Klaus 2009-10-22 13:55:38
直到您的應用程序返回到事件循環,屏幕上纔會顯示它。 你可以嘗試在widget-> show()之後調用qApp-> processEvents(),但這只是一個破解,而且窗口不會重新正確地重繪(等等)。 要正確解決問題,您需要:i)使connecttoserver無阻塞或ii)在不同的線程上調用connectttoserver。 – atomice 2009-10-22 14:05:48
謝謝,它現在運作良好。我會在一會兒看看線程。 – Klaus 2009-10-22 14:13:09