Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: diabLe от Сентябрь 23, 2010, 13:18



Название: QDialog и мак
Отправлено: diabLe от Сентябрь 23, 2010, 13:18
Создаем диалог

void MainWindow::slot1()
{
   QDialog *dlg = new QDialog(this);
   dlg->exec();
}

На Маке можно за "заголовок таскать" парент окно, а созданное окно останеться на месте. Как при таскании парент окна перемещать и созданное окно? (Так себя на маке ведет QProgressDialog, но оно появляется только сверху, а нужно бы в произвольном месте программы)


Название: Re: QDialog и мак
Отправлено: Авварон от Сентябрь 23, 2010, 14:03
ну чтобы диалог (виджет) вылезал сверху, надо поставить флаг Qt::Sheet (Qt::WindowFlags)
иное же поведение придется реализовывать руками через moveEvent


Название: Re: QDialog и мак
Отправлено: serkol от Сентябрь 25, 2010, 20:27
Если диалог должен вылезать из заголовка родительского окна, и оставлять активным заголовок родительского окна, то нужно установить свойство "windowModality" этого диалога в "WindowModal". Еще не помешает установить свойство "modal" в "true". А Qt::WindowFlags можно оставить в покое.