На главную... Продукты | Технологии | Классификаторы | Проекты | Скачать | Цены| Форум | Статьи | Обучение | Контакты

3D модель Qt mingw windows

Поиск  Пользователи  Правила  Войти
Форум » Настольные приложения » GIS ToolKit, GIS ToolKit Active
Страницы: 1
RSS
3D модель Qt mingw windows
 

Здравствуйте!

Подскажите, пожалуйста, каким образом мне получить сигналы от окна модели 3d, если я использую Qt mingw под Windows?

 
Здравствуйте!
Уточню вопрос.
Открываю окно 3D модели так:

Скрытый текст

И не могу поймать закрытие окна 3D модели(нажатие на X в окне 3D модели) ни с помощью MainWindow::nativeEvent,

ни с помощью QApplication::installNativeEventFilter. В чем может быть причина?

 
Здравствуйте!

На данный момент при использовании Qt при разработке ГИС-приложений мы поддерживаем только функции интерфейса MAPAPI (описаны в mapapi.h и не вызывают при работе диалоговых окон).

Если необходимо использовать, например, диалог отображения 3D, то можем предложить Вам использовать GIS Toolkit для Windows.
 

Добрый день, Александр!

GIS Toolkit для Windows нами приобретен.

Как вы предлагаете использовать GIS Toolkit для 3D? Использовать класс QDMap3D? Насколько я понимаю, он доступен только для linux.

 
Мы предлагаем принципиально использовать один из следующих подходов для разработки под Windows:
- GIS Toolkit для Windows (MAPAPI, диалоги, графические компоненты) без использования Qt;
- GIS Toolkit для Windows (MAPAPI) с использованием Qt.

Исходя из примера исходного кода, Вы используете диалоги из состава GIS Toolkit для Windows вместе с Qt - вариант, который нами на данный момент не поддерживается.
 

Я использую: t3dOpen t3dClose  http://help.gisinfo.ru/apilist3.htm#f217

Какие функции позволяют построить 3D модель (без диалогов и графических компонентов) для использования совместно с Qt?

 
Добрый день, Дмитрий!

В смысле вызова функций GIS TollKit по работе с 3D Ваш текст верен.
Вы задаете значение сообщения запроса о возможности закрытия
   parmtask3d.CmStop3d = 1000000;
и идентификатор окна документа(карты), из которого запускаете с помощью ф-ции t3dOpen компонент 3D-отображения
   tparmex.DocHandle = (HWND)ui->DMapView1->winId();

Могу уточнить, что при любом закрытии, в частности нажатие на Х (крест),  окно 3D-компонента посылает окну документа(карты) следующее сообщение:
      ::PostMessage(tparmex.DocHandle, WM_COMMAND, parmtask3d.CmStop3d, 0);

Если подаваемый Вами идентификатор окна документа верен, то далее поймать это сообщение - работа созданного Вами окна документа(карты) Вашего приложения. Мы не делали примеры работы с 3D-компонентом с использованием Qt под Windows и, к сожалению, не можем Вам что-либо тут посоветовать.  
 

Разобрался. Спасибо! Проблема была в том, что я не в том окне ждал сообщение. Думал, сообщение будет приходить в Handle TASKPARMEX.

Код (может кому-нибудь пригодится):

Скрытый текст
 
Добрый день, Дмитрий!
Рады, что у Вас всё получилось и спасибо за код! Он может помочь другим пользователям.
Страницы: 1
Читают тему (гостей: 1)



© КБ Панорама, 1991-2021

Регистрируясь или авторизуясь на форуме, Вы соглашаетесь с Политикой конфиденциальности