IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Qt Discussion :

Utilisation de QWSScreenSaver


Sujet :

Qt

  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2015
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2015
    Messages : 5
    Points : 3
    Points
    3
    Par défaut Utilisation de QWSScreenSaver
    Bonjour,

    Je cherche à manipuler cette classe afin de créer un simple écran de veille pour mon application Qt qui tourne sur un linux embarqué, mais je suis un peu perdu,
    Donc ce que j'ai fais c'est de déclarer une nouvelle classe comme suit: (dans mainwindow.h)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    class QWSMyScreenSaver:public QWSScreenSaver
    {
    public:
             void restore(){}
             bool save(int level){return true;}
    };
    et dans la classe dans laquelle je veux utiliser les différentes fonction: (dans mainwindow.h)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    public:
               QWSMyScreenSaver m_ScreenSaver;
    Et au niveau de ma classe mainwindow.cpp

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    void QWSMyScreenSaver::restore()
    {
    }
    bool QWSMyScreenSaver::save(int level)
    {
    }
    Quand je compile j'ai des erreurs:

    erreur : redefinition of 'void QWSMyScreenSaver::restore()'
    erreur : 'virtual void QWSMyScreenSaver::restore()' previously defined here
    erreur : redefinition of 'bool QWSMyScreenSaver::save(int)'
    erreur : 'virtual bool QWSMyScreenSaver::save(int)' previously defined here
    Donc si quelqu'un aurait une idée de la manière d'utiliser le QWSScreenSaver ou voudrait tout simplement se pencher sur le sujet avec moi, je suis preneur.

    Merci beaucoup d'avance

  2. #2
    Membre éclairé Avatar de PadawanDuDelphi
    Homme Profil pro
    Développeur de jeux vidéo
    Inscrit en
    Août 2006
    Messages
    678
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur de jeux vidéo
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2006
    Messages : 678
    Points : 717
    Points
    717
    Par défaut
    Comme le message d'erreur le laisse entendre, Tu définit 2 fois tes méthodes :

    Dans le .h
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    bool save(int level){return true;}
    et dans le cpp
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    bool QWSMyScreenSaver::save(int level)
    {
    return true;
    }
    Si tu définit tes méthodes dans le cpp, il faut uniquement les déclarer dans le .h
    For crying out loud !

  3. #3
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2015
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2015
    Messages : 5
    Points : 3
    Points
    3
    Par défaut
    Merci beaucoup pour votre réponse, le problème est réglé donc j'ai implémenté les différentes fonctions.

    Est ce que vous savez comment utiliser les différentes méthodes pour pouvoir passer d'un écran normal à un écran de veille et dans l'autre sens,

    Encore merci d'avance.

  4. #4
    Membre éclairé Avatar de PadawanDuDelphi
    Homme Profil pro
    Développeur de jeux vidéo
    Inscrit en
    Août 2006
    Messages
    678
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur de jeux vidéo
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2006
    Messages : 678
    Points : 717
    Points
    717
    Par défaut
    Non, je n'ai jamais utilisé cette classe.
    Mais sur la doc il n'y a que deux methodes :

    save(int) pour enregistrer activer le screen, et restore() pour le desactiver.

    Juste une question : pour quelles raisons as-tu choisi d'hériter la classe QWSScreenSaver au lieu de l'utiliser telle quel ?
    For crying out loud !

  5. #5
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2015
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2015
    Messages : 5
    Points : 3
    Points
    3
    Par défaut
    Oui en effet, j'aurai pu utiliser directement la classe mais c'est juste une question d'habitude,

    Concernant la mise en veille, je suis entrain de regarder à ça, il faut utiliser également une autre classe:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    qwsServer->screenSaverActivate(true);
    Le code ci dessus permet donc de mettre en veille, je comprend pas une chose lorsque je veux quitter le mode veille, j'utilise la même méthode:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
        qwsServer->screenSaverActivate(true);
        sleep(3);
        qwsServer->screenSaverActivate(false);
    Mais le problème l'application ne quitte pas le mode veille. Si vous avez des idées n'hésitez pas,

    merci

  6. #6
    Membre éclairé Avatar de PadawanDuDelphi
    Homme Profil pro
    Développeur de jeux vidéo
    Inscrit en
    Août 2006
    Messages
    678
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur de jeux vidéo
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2006
    Messages : 678
    Points : 717
    Points
    717
    Par défaut
    Je viens de lire la doc Qt, et oui tu étais obliger d'hériter ta classe.
    Pour le coup tu devrais le faire aussi, c'est seulement 2 lignes :

    void QWSScreenSaver::restore()
    Implement this function to deactivate the screensaver, restoring the previously saved screen.
    For crying out loud !

  7. #7
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2015
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2015
    Messages : 5
    Points : 3
    Points
    3
    Par défaut
    Ok merci et concernant le contenu en fait je dois mettre:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    void MiseEnVeille::restore()
    {
     
        qDebug() << "test";
        qwsServer->screenSaverActivate(false);
     
    }
    Mais ça ne marche pas, la méthode est bien appelée mais sans plus.
    Je vois pas ce qui faut faire au niveau de la méthode restore() à part remettre screenSaverActivate(false);

    J'ai peut être oublié quelque chose? merci d'avance.

  8. #8
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2015
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2015
    Messages : 5
    Points : 3
    Points
    3
    Par défaut
    Bonjour tout le monde,

    Le problème est réglé, en fait il faut jouer avec l'intervalle du temps comme suit:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    qwsServer->screenSaverActivate(true); 
        qwsServer->setScreenSaverInterval(10000);
    Donc on active la mise en veille après 10 secondes si on fait rien

    Et pour sortir de la mise en veille, faut remettre l'intervalle à 0.

    Je rappelle que ça concerne les applications Qt qui tournent sur un linux embarqué.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Utilisation de QWSScreenSaver
    Par Netzo dans le forum Qt
    Réponses: 0
    Dernier message: 30/03/2011, 09h45
  2. utiliser les tag [MFC] [Win32] [.NET] [C++/CLI]
    Par hiko-seijuro dans le forum Visual C++
    Réponses: 8
    Dernier message: 08/06/2005, 15h57
  3. utilisation du meta type ANY
    Par Anonymous dans le forum CORBA
    Réponses: 1
    Dernier message: 15/04/2002, 12h36
  4. [BCB5] Utilisation des Ressources (.res)
    Par Vince78 dans le forum C++Builder
    Réponses: 2
    Dernier message: 04/04/2002, 16h01
  5. Réponses: 2
    Dernier message: 20/03/2002, 23h01

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo