2015-08-13 42 views
0

我有一個應用程序在Qt和一個MainWindow。現在,我還添加了一個可以連接的幫助QDialog。這個QDialog不影響程序流,它只是顯示信息。如何在MainWindow的一側啓動第二個QDialog窗口?

但是,開頭總是在主窗口的頂部:/

所以我想啓動它在主窗口的一側,使其不妨礙欣賞到主窗口?怎麼樣?

回答

0

在我看來,你應該試試這個,

  1. 使用QWidget的過載::的setParent()函數來改變一個QDialog的widget的所有權,使用設置爲NULL(但它不會分享父母的任務欄條目)。

  2. QDialog :: show()立即返回控制給調用者,所以它不會干擾主窗口流。

0

假設您的應用程序處於全屏模式。那麼QDialog應該出現在哪裏?它會顯示在上面,你不會再滿意。

如果它不影響應用程序的流動,那麼您正在使用它來傳達某種消息。你能用不同的方式嗎?例如,QStatusBar

如果不是這樣,爲什麼不分開mainWindow與QSplitter或類似的類,並提供一個區域,您可以發佈所有信息?

0

這聽起來你想要無模式的對話。在主窗口中,使用插槽創建對話框。

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(); 
} 

我試圖說的是,如果新的對話框中的位置困擾你,你設置的位置和大小它,可見它。

相關問題