Jan Kundrát에게 감사드립니다 (이전 댓글 https://stackoverflow.com/a/16777496/1045832). 리눅스 X11을위한
는
솔루션 :
#include <objc/objc-runtime.h>
WId windowObject = this->winId();
objc_object * nsviewObject = reinterpret_cast<objc_object *>(windowObject);
objc_object * nsWindowObject = objc_msgSend(nsviewObject, sel_registerName("window"));
int NSWindowCollectionBehaviorCanJoinAllSpaces = 1 << 0;
objc_msgSend(nsWindowObject, sel_registerName("setCollectionBehavior:"), NSWindowCollectionBehaviorCanJoinAllSpaces);
이 .PRO
에 넣어 :
#ifdef Q_WS_X11 //only define on Qt 4.X
#include <QX11Info> //Only on Qt 4.X , return expected in Qt 5.1
#include <X11/Xlib.h>
#include <X11/Xatom.h>
#endif
YourWidget::YourWidget(QWidget *parent) :
QWidget(parent),
ui(new Ui::YourWidget)
{
#ifdef Q_WS_X11 //only define on Qt 4.X
unsigned long data = 0xFFFFFFFF;
XChangeProperty (QX11Info::display(),
winId(),
XInternAtom(QX11Info::display(), "_NET_WM_DESKTOP", False),
XA_CARDINAL,
32,
PropModeReplace,
reinterpret_cast<unsigned char *>(&data), // all desktop
1);
#endif
}
는 X 맥 OS에 대한 .PRO
unix:!macx {
LIBS += -lX11
}
솔루션에 넣어
macx {
LIBS += -lobjc
}
응용 프로그램에서 데스크톱을 가로 질러 나를 쫓기 시작하면이 작업이 매우 성가 시게 될 수 있으므로 좋은 이유가 있기를 바랍니다. 내가 가상 데스크탑을 사용하는 가장 큰 이유는 각기 다른 "윈도우"를 갖는 것입니다. – Viv
실제 작업을 기억하는 작은 투명한 위젯으로, 실제 작업 (예 : 동반자)을 잊지 않고 항상 볼 수 있어야합니다. –