Интеграция виджета Qt в приложение .NET (WPF) - PullRequest
5 голосов
/ 18 января 2011

У меня есть рабочий виджет Qt, который я хочу показать в приложении .NET. Приложение использует WPF, и я хочу встроить этот виджет в пользовательский интерфейс.

Каков рекомендуемый способ встраивания виджета Qt в приложение WPF? я должен использовать C ++ / CLI и передать HWND в WPF, или просто использовать ActiveQt? Я обеспокоен механизмом событий Qt, так как никто не будет вызывать QApplication :: exec ()

Ответы [ 2 ]

1 голос
/ 21 декабря 2011

Что вам нужно сделать, это использовать QAxServer, чтобы превратить ваш виджет в COM-объект:

http://developer.qt.nokia.com/doc/qt-4.8/activeqt-server.html

Что превратит ваш объект в объект COM. Затем вы сможете ссылаться на него как на таковое. Однако это не совсем нормальная практика работы с тремя технологиями (Qt, COM, WPF).

Для связи назад и вперед вам необходимо установить привязки:

http://developer.qt.nokia.com/doc/qt-4.8/qaxbindable.html

0 голосов
/ 09 октября 2012

ActiveQt все еще активно поддерживается ?! Просто интересно ...

В одном из моих проектов у меня была похожая проблема. Я решил это, обернув инициализацию Qt (QApplication и :: exec ()) в функцию, которую я вызываю через PInvoke, а затем просто использовал QWidgets (QWidget :: getDC () возвращает собственный дескриптор).

Это не самый чистый способ, но объединение Qt, COM и WPF вовсе не самое чистое ^^

...