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 la taille des bordures d'une fenêtre

  1. #1
    Membre actif
    Profil pro
    Inscrit en
    Février 2006
    Messages
    396
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2006
    Messages : 396
    Points : 230
    Points
    230
    Par défaut Récupérer la taille des bordures d'une fenêtre
    Bonjour,

    J'ai une fenêtre QT assez simple: elle contient uniquement un QGLWidget.

    Main:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    int main(int argc, char *argv[])
    {
    	QApplication app(argc, argv);
    	Window window;
    	window.setMouseTracking(true);
    	window.move(0, 0);
    	window.resize(600, 600);
    	window.show();
     
    	return app.exec();
    }
    Ma "Window" qui dérive de QWidget:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Window::Window()
    {
    	glWidget = new GLWidget(this);
    	glWidget->setMouseTracking(true);
     
    	QHBoxLayout *mainLayout = new QHBoxLayout;
    	mainLayout->addWidget(glWidget);
    	mainLayout->setMargin(0);
    	setLayout(mainLayout);
     }
    J'aimerai pouvoir bouger le curseur de la souris à une certaine position sur la fenêtre, j'ai donc fait ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    void MyClass::moveMouse(int x, int y)
    {
    	QCursor::setPos(window->geometry().topLeft().x()+x, window->geometry().topLeft().y()+y);
    }
    Ce code source fonctionne très bien environ 1 fois sur 5. Parfois, la géometrie 'topLeft' me retourne "0" alors que j'ai bien une fenêtre avec une barre au-dessus
    Est-ce un bug dans QT ou est-ce que j'ai fait quelque chose de mal ?

    Merci d'avance.

  2. #2
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 859
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 26 859
    Points : 218 580
    Points
    218 580
    Billets dans le blog
    120
    Par défaut
    Bonjour,

    Lorsque vous dites parfois ? Est ce pendant la même exécution, ou la différence ne serait pas "Linux" / "Windows" ?
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  3. #3
    Membre actif
    Profil pro
    Inscrit en
    Février 2006
    Messages
    396
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2006
    Messages : 396
    Points : 230
    Points
    230
    Par défaut
    Bonjour,

    Non, j'exécute toujours mon application de la même façon sur Linux.
    Je n'arrive pas à déterminer quand le problème se produit, ça semble totalement aléatoire.

  4. #4
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 859
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 26 859
    Points : 218 580
    Points
    218 580
    Billets dans le blog
    120
    Par défaut
    Pour moi, sous Linux, topLeft() retourne 0. Enfin, cela dépend de quel widget nous parlons.
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  5. #5
    Membre actif
    Profil pro
    Inscrit en
    Février 2006
    Messages
    396
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2006
    Messages : 396
    Points : 230
    Points
    230
    Par défaut
    Hello,

    Sur mon Linux, il me retourne: X=5 & Y=25 (ce qui correspond bien au nombre de pixel de bordure de mes fenêtres).

    Je viens de passer d'Ubuntu 11.10 à Ubuntu 12.04 et je pense que la problème a disparu. J'ai tenté de la reproduire plus de 30 fois et je n'y suis pas arrivé.

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

Discussions similaires

  1. Réponses: 7
    Dernier message: 30/04/2015, 13h10
  2. [Débutant] Récupérer la taille des fichiers/dossiers dans une même variable
    Par Bylliboy dans le forum VB.NET
    Réponses: 11
    Dernier message: 18/06/2014, 12h50
  3. [AC-2002] Récupérer taille des fichiers dans une table
    Par Jean-Luc80 dans le forum VBA Access
    Réponses: 3
    Dernier message: 22/11/2011, 11h22
  4. Récupérer des valeurs d'une fenêtre
    Par thierrybatlle dans le forum Delphi
    Réponses: 3
    Dernier message: 08/06/2006, 10h47
  5. Réponses: 1
    Dernier message: 15/09/2005, 22h47

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