Question

Existe-t-il un moyen de spécifier la position initiale de la fenêtre d'un enfant dans Qt ?

J'ai une application qui fonctionne sous Linux et Windows et il semble que le comportement par défaut de Qt permette au gestionnaire de fenêtres de déterminer l'emplacement des fenêtres enfants.

Sous Windows, c'est au centre de l'écran sur lequel se trouve le parent, ce qui semble raisonnable.

Sous Linux, dans GNOME (métacité) c'est toujours dans le coin supérieur gauche ce qui est gênant.Je ne trouve aucune préférence de gestionnaire de fenêtres pour la métacité qui me permette de contrôler le placement des fenêtres, j'aimerais donc remplacer ce comportement.

Était-ce utile?

La solution

Géométrie du widget Qt

Appelez la méthode move(x, y) sur la fenêtre enfant avant show().Les valeurs par défaut pour x et y sont 0, c'est pourquoi elles apparaissent dans le coin supérieur gauche.
Vous pouvez également utiliser la position de la fenêtre parent pour calculer une position relative pour l'enfant.

Autres conseils

En règle générale, je recommande de ne pas forcer la position des fenêtres, sauf si votre application a des exigences de fenêtrage très particulières.C'est le travail du gestionnaire de fenêtres de déterminer où les nouvelles fenêtres sont placées et la plupart d'entre elles font du bon travail.Si MetaCity ne choisit pas une bonne position, c'est son problème.

Si vous effectuez votre propre placement de fenêtres, vous obtiendrez peut-être un meilleur résultat que ce qu'un mauvais gestionnaire de fenêtres donnerait, mais vous manquerez également les algorithmes intelligents de placement de fenêtres disponibles dans les gestionnaires de fenêtres plus avancés.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top