Folco (./114) :
Pourquoi quand j'écris ça :
bool NativeEventFilter::nativeEventFilter(const QByteArray& eventType, void* message, long*)
{
if (eventType == "windows_dispatcher_MSG")
{
return true;
}
return false;
}
J'ai cette erreur :
NativeEventFilter.cpp:10: erreur : no match for 'operator==' (operand types are 'const QByteArray' and 'const char [23]')
Parce que
QByteArray n'est probablement déclaré qu'en avance (suffisant si on n'utilise que des
const QByteArray &) et le header
QByteArray n'est pas inclus.
Par contre, si j'inclus <QLocalServer>, ça passe, operator== semble défini pour mes besoins (je me suis rendu compte de ça en googlant). Quelle est la solution propre, qui évite d'inclure un header random ?
#include <QByteArray>EDIT -> Bon oubliez, ça marche sans que je comprenne pourquoi...
C'est quand-même mieux de comprendre pourquoi.

Je suppose que ça marche parce que tu as inclus un header qui inclut
<QByteArray>. (C'est très courant.)
Folco (./116) :
// Install a native event filter and register a hotkey
NativeEventFilter nef;
filter = &nef;
app.installNativeEventFilter(filter);
Attention, tu leakes un pointeur vers une variable locale, ce n'est généralement pas une bonne idée! Ça passe si tu es dans
main (parce que dans ce cas, la variable locale va durer jusqu'à la fin du programme), mais n'essaie pas de faire ça dans une fonction qui retourne tout de suite.
[...] et qu'un thread d'interface je sais pas comment le trouver ^^
Avec Qt, par défaut, le thread d'interface est le thread principal.