在Qt中,我有一個2表單FirstUI和SecondUI。主要打開FirstUI。在這裏我檢查應用程序需要的數據庫是否存在,如果不存在,則創建一個新的數據庫。它還檢查數據庫中是否存在任何無線網絡詳細信息。如果有最後連接的wifi的詳細信息,那麼應用程序將掃描可用網絡並使用數據庫中的詳細信息連接到WiFi網絡。關閉調用關閉()該用戶界面不關閉
現在,如果數據庫中沒有wifi細節,或者數據庫中列出的網絡不存在,或者應用程序無法連接到wifi網絡,它將發出信號WifiNotConnected();
我已將信號連接到打開SecondUI的插槽。
connect(this,SIGNAL(WifiNotConnected()),this,SLOT(OpenSecondUI()));
.....
void FirstUI::OpenSecondUI()
{
SecondUI *sec = new SecondUI();
this->close();
sec->show();
}
SecondUI打開,但是這不關閉FirstUI。
編輯:如果wifi細節存在,我有一個類(WifiBoot)繼承QObject併爲我執行連接任務。因爲我希望GIF文件在GUI中播放,並且連接發生在同一時間,所以我已經實例化了實現wifi連接的類(WifiBoot)並將其移至另一個線程。的WiFi連接後我發射其被連接到狹槽打開SecondUI
connect(worker,SIGNAL(finished()),this,SLOT(FinishedConnection()));
void FirstUI::FinishedConnection()
{
OpenSecondUI();
}
這關閉FirstUI並打開SecondUI成品信號。但在第一種情況下並不是。這是爲什麼發生?有沒有更好的方法去解決它? 任何幫助表示讚賞
看看是否有效:確保第二個用戶界面的模式是「NonModal」。然後在您的代碼中反轉該順序,首先顯示第二個UI,然後關閉當前的一個。 ('sec-> show(); this-> close();') – Mousa
可能是OT,但我無法抗拒。我會建議做一個控制器來完成你的目標。控制器將管理兩個用戶界面,以便分離用戶界面。我不認爲這是一個良好的做法,用戶界面打開另一個用戶界面。 –
@ andrea.marangoni感謝您的回覆。你能否提供一個示例代碼? – Giz