113Fermer115
deleted2Le 06/08/2015 à 21:45
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]')
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 ?


EDIT -> Bon oubliez, ça marche sans que je comprenne pourquoi...


Maintenant, j'ai besoin d'une explication par rapport aux hotkeys.
- j'ai dérivé http://doc.qt.io/qt-5/qabstractnativeeventfilter.htmlQAbstractNativeEventFilter], je l'ai installé avec [url=]installNativeEventFilter comme m'a dit Golden
- j'ai registeré (c) ue hotkey comme le dit Monsieur MS

J'ai implémenté nativeEventFilter comme ça :
bool NativeEventFilter::nativeEventFilter(const QByteArray& eventType, void* message, long*)
{
    if (eventType == "windows_dispatcher_MSG")
    {
        MSG* msg = static_cast<MSG*>(message);
        if (msg->message == WM_HOTKEY)
        {
            emit hotkeyPressed();
            return true;
        }
    }
    return false;
}
En déboguant, je vois bien que j'intercepte des message de type "windows_dispatcher_MSG", par contre je dois déconner pour lire le message.
En tout cas, mon app ne réagit pas au signal émis, et je crois avoir pourtant bien fait ma connexion.
C'est ma méthode qui est mal impémentée ?

Je continue à chercher des exemples de code via google. Je suis content, je sens que j'y suis presque, et c'est le dernier truc à faire sur mon app (mais c'est aussi la feature qui fait 50% de l'app grin)