QT ScrollBars不会出现在scrollAreaWidgetContents

时间:2017-10-27 16:48:31

标签: c++ qt qt-designer qscrollarea

我正在尝试使用visual studio学习QT。我的开发环境是VS2015和QT设计师。我正在尝试执行以下教程。

http://www.bogotobogo.com/Qt/Qt5_QMainWindow_QAction_ImageViewer_B.php

本质上教程使用Qlabel和QScrollArea显示图像。如果我用代码创建小部件(使用visual studio),程序似乎可以工作。

imageLabel = new QLabel;
imageLabel->setBackgroundRole(QPalette::Base);
imageLabel->setSizePolicy(QSizePolicy::Ignored, QSizePolicy::Ignored);
imageLabel->setScaledContents(true);

scrollArea = new QScrollArea;
scrollArea->setBackgroundRole(QPalette::Dark);
scrollArea->setWidget(imageLabel);
setCentralWidget(scrollArea);

然而,我尝试用QT Designer做同样的事情。当我从QT Designer拖动ScrollArea时,我注意到它还创建了一个名为" scrollAreaWidgetContents"的QWidget。然后当我创建QLabel时,Label在" scrollAreaWidgetContents"下创建。小部件。然后我尝试使用以下代码显示图像。

ui->label->setBackgroundRole(QPalette::Base);
ui->label->setSizePolicy(QSizePolicy::Ignored, QSizePolicy::Ignored);
ui->label->setScaledContents(true);

ui->scrollArea->setBackgroundRole(QPalette::Dark);
ui->scrollArea->setWidget(ui->scrollAreaWidgetContents);
ui->scrollArea->setWidgetResizable(true);
ui->scrollAreaWidgetContents->setSizePolicy(QSizePolicy::Ignored, QSizePolicy::Ignored);
//ui->scrollArea->setWidget(ui->label);
setCentralWidget(ui->scrollArea);

这个问题是滚动条永远不会出现。请参阅附件enter image description here

然后我取消注释" ui-> scrollArea-> setWidget(ui-> label);"行,然后程序编译但崩溃。那么,如何使用QT Designer显示滚动条?我做错了什么。

感谢您的帮助

0 个答案:

没有答案