Russian Qt Forum
Ноябрь 01, 2024, 02:48 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Как сделать QDialog модальным?  (Прочитано 5731 раз)
sy
Гость
« : Май 27, 2010, 13:57 »

Проблема такая. Пишу я COM-сервер... У него вызывается слот MyFoo(IDispatch *Env)
Из Env я могу узнать win_api-хэндл основного окна программы, вызвавшей MyFoo.
Внутри MyFoo я создаю диалог:
Код:
        Ui::SearchReadDlg ui;
        QDialog* dlg = new QDialog();
        ui.setupUi(dlg);
        dlg->exec();

Как сделать так, чтобы этот диалог был parent от вызвавшей программы  Непонимающий
Записан
KuZ
Гость
« Ответ #1 : Май 27, 2010, 19:36 »

Код:
QDialog* dlg = new QDialog(parent);
dlg.setModal(true);
Qt Assistant в помощь.
Записан
sy
Гость
« Ответ #2 : Май 28, 2010, 11:41 »

Так ведь вся проблема в том, что QDialog в качастве parent принимает только QWidget*, а у меня есть только хэндл виндового окна HWND.
Отыскал вот такой вариант:
Код:
        QWidget *parent = new QWidget();
        SetParent(parent->winId() , iHWND);
        QDialog* dlg = new QDialog(parent);
SetParent - win api функция. Только работает как-то глючно...
Вот еще кое-чего есть: http://qt.nokia.com/products/appdev/add-on-products/catalog/4/Windows/qtwinmigrate
Попробую использовать...
« Последнее редактирование: Май 28, 2010, 12:02 от sy » Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.046 секунд. Запросов: 21.