120Fermer122
Kevin KoflerLe 07/08/2015 à 02:58
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. smile 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.