Bonjour,
Je crois que mon souci est général aux QGraphicsView mais je le rencontre avec une QDeclarativeView.
1 2
| m_view = new QDeclarativeView;
m_view->setResizeMode ( QDeclarativeView::SizeRootObjectToView ); |
En faisant cela, je m'attends à ce que l'intérieur prennent la taille de la QDeclarativeView, ce qui est le cas normalement.
Mais, si j'applique un CSS à mon application, concernant les QDeclarativeView :
1 2 3 4 5
| QDeclarativeView {
background: transparent; /* normal sinon fond blanc */
margin-top: 60px; // besoin spécifique à l'application
border: 2px solid blue; /* pourquoi pas (debug) */
} |
le fait de mettre une marge et une bordure réduit la taille de la vue, mais fait buguer la taille de l'intérieur ! Je peux cliquer dedans et me rendre compte avec les flèches du clavier que c'est scrollable, parce qu'il a gardé la taille d'avant application du styleSheet (pire que ça, il a gagné en largeur, j'ai des gros espaces vides en bas et à droite).
Ça vous dit quelque chose ? Une action à faire sur le viewPort() ? Au resizeEvent ? Une option que j'ai manqué ?
Edit : Comment tester le problème en deux clics
Créer une application Qt Quick (QML/C++).
Faire en sorte que le rectangle du .qml soit visible, par exemple rajouter :
1 2 3
| color: "yellow"
border.color: "red"
border.width: 2 |
Dans le main.cpp, rajouter avant le showExpanded :
viewer->setStyleSheet ( "margin-top: 60px;" );
Vous allez constater que (contrairement à ce que j'ai dit plus haut) le rectangle a la bonne taille MAIS il a un espace blanc de 60px dessous aussi. Je ne sais pas ce que c'est...
Partager