QScrollArea, pour une raison quelconque, ignore le paramètre contentMargins
lorsque j'ai défini QGraphicsView comme widget. En regardant l'extrait ci-dessous, quelqu'un peut s'il vous plaît dire si je fais quelque chose de mal ou ce pourrait être un bug dans le SDK?QScrollArea ne respectant pas le paramètre contentMargins
Snippet 1 (fonctionne parfaitement):
QWidget *appWindow = new QWidget;
QScrollArea *sa = new QScrollArea(appWindow);
sa->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOn);
sa->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOn);
sa->setContentMargins(50, 50, 50, 50);
QWidget *widgetToScroll = new QWidget(sa);
widgetToScroll->resize(5000, 5000);
sa->setWidget(widgetToScroll);
QVBoxLayout *appWindowLayout = new QVBoxLayout(appWindow);
appWindowLayout->addWidget(sa);
appWindow->setLayout(appWindowLayout);
appWindow->show();
Snippet 2 (Il est comme setContentMargins() appel est ignoré complètement):
QWidget *appWindow = new QWidget;
QScrollArea *sa = new QScrollArea(appWindow);
sa->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOn);
sa->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOn);
sa->setContentMargins(50, 50, 50, 50);
QGraphicsView *widgetToScroll = new QGraphicsView(new QGraphicsScene(sa), sa);
widgetToScroll->setAlignment(Qt::AlignLeft | Qt::AlignTop);
widgetToScroll->resize(5000, 5000);
sa->setWidget(widgetToScroll);
QVBoxLayout *appWindowLayout = new QVBoxLayout(appWindow);
appWindowLayout->addWidget(sa);
appWindow->setLayout(appWindowLayout);
appWindow->show();
Merci.
Je suis un débutant à Qt; votre réponse détaillée m'a vraiment aidé à mieux comprendre les concepts de Qt. Je vais certainement essayer vos suggestions. – gplusplus
Pas de problème. Bonne chance. – phyatt