Bonjour,

Je crois que mon souci est général aux QGraphicsView mais je le rencontre avec une QDeclarativeView.
Code C++ : Sélectionner tout - Visualiser dans une fenêtre à part
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 :
Code CSS : Sélectionner tout - Visualiser dans une fenêtre à part
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 :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
color: "yellow"
border.color: "red"
border.width: 2
Dans le main.cpp, rajouter avant le showExpanded :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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...