У меня есть QDeclarativeView
, который я хочу поместить в QScrollArea
, проблема в том, что область прокрутки не работает. Неважно, насколько большим я установил декларативное представление. Я не вижу полосу прокрутки, как будто не могу сказать, что для представления нужна полоса прокрутки. Если я не устанавливаю setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOn); полоса прокрутки не появляется.
Родитель вставляется в бордерлайаут как центральный виджет – я использую этот макет http://qt-project.org/doc/qt-4.8/layouts-borderlayout.html
myWidgets *editWidget = new myWidgets(pathToExe,viewerMgr, this);
editWidget->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
Вот мой виджет:
QScrollArea* scroll = new QScrollArea();
view = new QDeclarativeView(this);
view->setSource(QUrl::fromLocalFile(path));
view->setSizePolicy(QSizePolicy::Ignored, QSizePolicy::Ignored);
view->setResizeMode(QDeclarativeView::SizeViewToRootObject);
scroll->setWidget(view);
scroll->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOn);
scroll->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOn);
scroll->setWidgetResizable(true);
Я пробовал разные размеры содержимого, но похоже, что qscrollview не определяет, когда мой виджет больше, чем видимое представление qscrollarea.
view->setSizePolicy(QSizePolicy::Ignored, QSizePolicy::Ignored);
наview->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed);
, я заставлю область прокрутки работать. Но я не могу использовать функцию масштабирования. Так что у меня все еще есть проблема, чтобы заставить это работать - person Chaf   schedule 22.10.2013