我知道这是一个非常具体的 C++ 和 Qt 相关问题,但无论如何也许有人可以帮助我......
请参阅下面的代码:我想在滚动区域内显示图像。滚动区域的视口(viewport)应具有定义的初始大小。这意味着,如果图像的大小大于视口(viewport)的初始大小,则滚动条将可见,否则不可见。
// create label for displaying an image
QImage image( ":/test.png" );
QLabel *label = new QLabel( this );
label->setPixmap( image.toPixmap() );
// put label into scroll area
QScollArea *area = new QScrollArea( this );
area->setWidget( label );
// set the initial size of the view port
// NOTE: This is what I'd like to do, but this method does not exist :(
area->setViewPortSize( QSize( 300, 300 ) );
应该可以调整整个应用程序的大小,以便视口(viewport)的大小不同于初始大小。
不幸的是,我无法找到如何设置视口(viewport)大小的方法。 Qt 的布局机制似乎为视口(viewport)设置了默认大小,但到目前为止我无法更改它。使用
设置新尺寸area->setMinimumSize( QSize( 300, 300 ) );
实际上会设置所需的大小,但随后滚动区域将无法调整为小于 300x300 的大小。
有什么想法吗?
最佳答案
我认为您看问题的方式不对。 QScrollArea 只是一个放置在框架或 QMainWindow 中的小部件。小部件的大小由包含它的小部件的布局控制。
看看来自 Trolltech 的这个例子:Image Viewer Example
关于c++ - 如何设置 QScrollArea 的初始大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/241144/