QT Modeless диалоговое окно не отвечает на команду перемещения - PullRequest
0 голосов
/ 18 мая 2010

я использую немодальное диалоговое окно в моем приложении, и когда я пытаюсь использовать немодальное диалоговое окно, команда перемещения из главного окна
немодальный диалог даже не появился, почему? (кстати, если я удаляю команду перемещения, все работает, и я могу видеть диалог при вызове, я пытаюсь переместить его в эру systray.
вот код: M

odelessDialog* ModelessDialog= new ModelessDialog(this);
ModelessDialog->setModal(false);
ModelessDialog->setAttribute(Qt::WA_DeleteOnClose);
int topLeft_x = m_SystrayReq.topLeft().x();
int topLeft_y = m_SystrayReq.topLeft().y();
// the valus of x & y are just fine .
        ModelessDialog->move(topLeft_x,topLeft_y);
        ModelessDialog->show();

Ответы [ 2 ]

3 голосов
/ 18 мая 2010

Поскольку у диалогового окна есть родительский элемент, координаты move () относятся к родительскому виджету. Ваши systray координаты, вероятно, глобальные? Затем используйте QWidget :: mapFromGlobal (), чтобы отобразить их.

0 голосов
/ 18 мая 2010

Похоже, вы перемещаете диалоговое окно в верхний левый угол панели задач. Команда перемещения помещает верхний левый угол диалогового окна, куда вы говорите, чтобы он двигался. Если глобально-локальные изменения Фрэнка не имеют значения, возможно, systray всегда будет отображаться над вашим диалогом (таким образом, не позволяя его отображать).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...