I've created a little class to set some global shortcuts. But now, when i compile my app i see many errors:
In file included from ../src/GlobalShortcut/globalshortcut_linux.h:7:0,
from moc_globalshortcut_linux.cpp:9:
../../../QtStable/5.4/gcc_64/include/QtWidgets/qstyleoption.h:117:9: error: expected identifier before numeric constant
None = 0x00,
^
../../../QtStable/5.4/gcc_64/include/QtWidgets/qstyleoption.h:117:9: error: expected '}' before numeric constant
../../../QtStable/5.4/gcc_64/include/QtWidgets/qstyleoption.h:117:9: error: expected unqualified-id before numeric constant
In file included from ../../../QtStable/5.4/gcc_64/include/QtCore/qglobal.h:1085:0,
from ../src/GlobalShortcut/globalshortcut_linux.h:4,
from moc_globalshortcut_linux.cpp:9:
../../../QtStable/5.4/gcc_64/include/QtWidgets/qstyleoption.h:121:36: error: 'FrameFeature' was not declared in this scope
Q_DECLARE_FLAGS(FrameFeatures, FrameFeature)
^
When i commented my class errors are gone. Here is it: http://pastebin.com/k5qSvqDn
Ok, i inherited class from QWidget instead of QMainWindow (i dont know why :D) and now i have another errors:
mainwindow.o: In function `X11ShortCut::addShortCut(QKeySequence, QString)':
globalshortcut_linux.h:30: undefined reference to `QX11Info::display()'
globalshortcut_linux.h:31: undefined reference to `QX11Info::appRootWindow(int)'
globalshortcut_linux.h:31: undefined reference to `QX11Info::display()'
globalshortcut_linux.h:32: undefined reference to `QX11Info::display()'
In my .pro file i've added LIBS += -lX11
, it didnt helped.
So, what is the problem?
Vinicius is close to having the full answer.
This is for Qt 5.1 or newer. The issue is that access to X11 and GDI handles were removed and then put back again in a slightly different place.
Add x11extras to the .pro file:
If the moc generated code fails to compile add the following to the bottom of the the file it includes (X11 headers define Bool):
Add the following to the file that needs access to QX11Info:
I have not checked, but I believe you only missed adding the following to your
.pro
file, as stated at the docsIt's likely that that you may be missing a header file, but without the error message, I find it a bit hard to figure it out since I've never touched X11 stuff directly.
Hope it helps.