Вот мой .mm файл
#include "windowmanagerutils.h"
#ifdef Q_OS_MAC
#import </System/Library/Frameworks/ApplicationServices.framework/Frameworks/CoreGraphics.framework/Headers/CGWindow.h>
QRect WindowManagerUtils::getWindowRect(WId windowId)
{
CFArrayRef windows = CGWindowListCreate(kCGWindowListOptionOnScreenOnly, kCGNullWindowID);
return QRect();
}
QRect WindowManagerUtils::getClientRect(WId windowId)
{
return QRect();
}
QString WindowManagerUtils::getWindowText(WId windowId)
{
return QString();
}
WId WindowManagerUtils::rootWindow()
{
QApplication::desktop()->winId();
}
WId WindowManagerUtils::windowFromPoint(const QPoint &p, WId parent, bool(*filterFunction)(WId))
{
return NULL;
}
void WindowManagerUtils::setTopMostCarbon(const QWidget *const window, bool topMost)
{
if (!window)
{
return;
}
// Find a Cocoa equivalent for this Carbon function
// [DllImport("/System/Library/Frameworks/Carbon.framework/Versions/Current/Carbon")]
// OSStatus ret = HIViewSetZOrder(this->winId(), kHIViewZOrderAbove, NULL);
}
#endif
Компоновщик говорит мне, что "_CGWindowListCreate" не определен. С какими библиотеками я должен связаться? Документация Apple не очень полезна при сообщении, что включать или связаться с, как MSDN. Также я не мог просто сделать #import <CGWindow.h>
, Я должен был указать полный путь к нему... какой-либо путь вокруг этого?
Функция CGWindowListCreate является частью Quartz Window Services. Соответствующим фреймворком является ApplicationServices
, который находится в /System/Library/Frameworks/
.
Таким образом, вы можете просто включить
в верхней части файла и связать с -framework ApplicationServices
опцией.