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

Discussion :

Récupérer un évènement de changement de résolution d'écran

  1. #1
    Membre du Club
    Homme Profil pro
    Technicien Supérieur en Développement Industriel
    Inscrit en
    Février 2010
    Messages
    65
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Technicien Supérieur en Développement Industriel
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2010
    Messages : 65
    Points : 63
    Points
    63
    Par défaut Récupérer un évènement de changement de résolution d'écran
    Bonjour à tous,

    Je cherche à gérer un event qui n’a pas de rapport direct avec l'application.

    Concrètement j'aimerai que mon application modifie sa taille et sa disposition lors d'un changement de résolution d'écran.

    Par exemple, sur un dual-screen, quand je passe mon application de mon PC au vidéo projecteur (et vice-versa) les variables
    Code C++ : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    QApplication::desktop()->widh();
    // Ou 
    QApplication::desktop()->height();
    changent.

    Est-il possible, avec Qt, lorsque ces variables sont modifiés de lancer un bout de code dynamiquement ?

    Ou bien, il me faut créer une sorte de timer qui toute les N ms va comparer les résolutions aux temps t et t-1 ? (Si ce cas est plus simple comment faire pour créer ce timer)

    Merci d'avance

  2. #2
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Septembre 2006
    Messages
    2 936
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 2 936
    Points : 4 356
    Points
    4 356
    Par défaut
    Qt appelle
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
        QDesktopWidgetImplementation::instance()->onResize();
    pour notifier le changement signalé par l'OS à sa classe QDesktopWidgetImplementation mais onResize() lui-même ne semble pas utiliser un mécanisme de notification pour transmettre l'évènement à votre code.

  3. #3
    Membre du Club
    Homme Profil pro
    Technicien Supérieur en Développement Industriel
    Inscrit en
    Février 2010
    Messages
    65
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Technicien Supérieur en Développement Industriel
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2010
    Messages : 65
    Points : 63
    Points
    63
    Par défaut
    Citation Envoyé par JeitEmgie Voir le message
    sa classe QDesktopWidgetImplementation
    Je suis désolé mais même dans La Doc Qt je ne trouve pas cette classe

  4. #4
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Septembre 2006
    Messages
    2 936
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 2 936
    Points : 4 356
    Points
    4 356
    Par défaut
    Citation Envoyé par Pikxee Voir le message
    Je suis désolé mais même dans La Doc QT je ne trouve pas cette classe
    http://svn.netlabs.org/repos/qt4/trunk/src/gui/kernel/

  5. #5
    Membre du Club
    Homme Profil pro
    Technicien Supérieur en Développement Industriel
    Inscrit en
    Février 2010
    Messages
    65
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Technicien Supérieur en Développement Industriel
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2010
    Messages : 65
    Points : 63
    Points
    63
    Par défaut
    Je suis vraiment désolé mais avec ton lien je tombe sur une page ou je peux trouver QDesktopWidget mais pas plus.

  6. #6
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Septembre 2006
    Messages
    2 936
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 2 936
    Points : 4 356
    Points
    4 356
    Par défaut
    Citation Envoyé par Pikxee Voir le message
    Je suis vraiment désolé mais avec ton lien je tombe sur une page ou je peux trouver QDesktopWidget mais pas plus.
    QDesktopWidgetImplementation est dans les fichiers sources spécifiques à chaque plate-forme.

    De toute façon le problème essentiel reste que si le framework Qt "capte" bien l'évènement pour mettre à jour ses structures de données en fonction de comment l'évènement est dispatché sur les différents OS, il ne fait rien pour avertir l'application hôte du changement, donc vous allez devoir bidouiller :
    regarder les codes sources pour les différents OS et vous en inspirer pour faire la même chose au niveau de votre application.

Discussions similaires

  1. Réponses: 36
    Dernier message: 16/01/2015, 08h09
  2. changement de résolution d'écran
    Par Steph' dans le forum VirtualBox
    Réponses: 0
    Dernier message: 07/07/2014, 12h31
  3. [AC-2003] Formulaire et changement de résolution d'écran
    Par Hamadokh dans le forum IHM
    Réponses: 1
    Dernier message: 13/08/2009, 18h34
  4. Problème lors du changement de résolution d'écran
    Par yangoal25 dans le forum VB 6 et antérieur
    Réponses: 10
    Dernier message: 10/11/2006, 15h33
  5. [glut] changement de résolution
    Par khayyam90 dans le forum GLUT
    Réponses: 4
    Dernier message: 12/07/2004, 11h40

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