我有一個應用程序在Qt和一個MainWindow。現在,我還添加了一個可以連接的幫助QDialog。這個QDialog不影響程序流,它只是顯示信息。如何在MainWindow的一側啓動第二個QDialog窗口?
但是,開頭總是在主窗口的頂部:/
所以我想啓動它在主窗口的一側,使其不妨礙欣賞到主窗口?怎麼樣?
我有一個應用程序在Qt和一個MainWindow。現在,我還添加了一個可以連接的幫助QDialog。這個QDialog不影響程序流,它只是顯示信息。如何在MainWindow的一側啓動第二個QDialog窗口?
但是,開頭總是在主窗口的頂部:/
所以我想啓動它在主窗口的一側,使其不妨礙欣賞到主窗口?怎麼樣?
在我看來,你應該試試這個,
使用QWidget的過載::的setParent()函數來改變一個QDialog的widget的所有權,使用設置爲NULL(但它不會分享父母的任務欄條目)。
QDialog :: show()立即返回控制給調用者,所以它不會干擾主窗口流。
假設您的應用程序處於全屏模式。那麼QDialog應該出現在哪裏?它會顯示在上面,你不會再滿意。
如果它不影響應用程序的流動,那麼您正在使用它來傳達某種消息。你能用不同的方式嗎?例如,QStatusBar?
如果不是這樣,爲什麼不分開mainWindow與QSplitter或類似的類,並提供一個區域,您可以發佈所有信息?
這聽起來你想要無模式的對話。在主窗口中,使用插槽創建對話框。
void MainWindow::show_dialog()
{
if (pDialog== NULL)
pDialog= new XYZ_Dialog(this);
QPoint p = pos();
QSize s = frameSize();
pDialog->setGeometry(p.x()+s.width(), p.y(), s.width()*1/2, s.height());
pDialog->show();
}
我試圖說的是,如果新的對話框中的位置困擾你,你設置的位置和大小它,可見它。