2015-08-13 40 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(); 
} 

我试图说的是,如果新的对话框中的位置困扰你,你设置的位置和大小它,可见它。

相关问题