#c #cocoa #xcode #qt #macos
#c #cocoa #xcode #qt #macos
Вопрос:
У меня есть приложение, написанное на C и использующее QT в качестве фреймворка. Компилятором является gcc, а IDE — QT Creator.
В Mac OS мне нужно, чтобы мое приложение взаимодействовало с пробелами путем доступа к свойству collectionBehavior NSWindow. Таким образом, должен быть своего рода мост от приложения C к NSWindow.
Может ли кто-нибудь дать мне подсказку о том, возможно ли это либо с моей текущей настройкой gcc / qtcreator (что, я думаю, невозможно), либо с помощью xcode?
Ответ №1:
Если вы используете Cocoa Qt (существует 2 версии Qt — Cocoa и Carbon, помните об этом!), вы можете использовать WinID() в классе QWidget для извлечения собственного дескриптора виджета.
В Qt Carbon QWidget::WinID() возвращает HIViewRef, в Qt Cocoa он возвращает NSView. Я предполагаю, что вы можете каким-то образом извлечь NSWindow из NSView
Комментарии:
1. @Dmitry Objective-C работает довольно хорошо. И у @Kamil NSView есть
-window
метод.