2015-08-13 9 views
0

У меня есть приложение в Qt и MainWindow. Теперь я также добавил помощь QDialog, которая может быть подключена. Этот QDialog не влияет на программный процесс, он просто отображает информацию.Как запустить второе окно QDialog на стороне MainWindow?

Но, это всегда начинается на вершине MainWindow:/

Поэтому я хотел бы, чтобы запустить его на стороне главного окна, так что это не мешает вид главного окна ?? Как?

ответ

0

На мой взгляд, Вы должны попробовать это,

  1. Используйте перегрузку QWidget :: SetParent() для изменения владельца виджета QDialog, используя набор в NULL (но это не будет поделитесь записью панели задач родителя).

  2. QDialog :: show() немедленно возвращает управление вызывающему, поэтому он не будет вмешиваться в поток mainwindow.

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

То, что я пытаюсь сказать, если позиция нового диалога надоедает, вы установите положение и размер его, прежде чем показывать его.

 Смежные вопросы

  • Нет связанных вопросов^_^