我在写项目的时候,碰到了一个问题
如何让qt QScrollArea的 滚动条在左边显示
要在 Qt 的 QScrollArea 中将滚动条显示在左边,可以通过设置 QScrollBar 的位置并使用 QBoxLayout 布局来实现。
具体步骤如下:
QScrollArea *scrollArea = new QScrollArea(this);
layout->addWidget(scrollArea);
QWidget *widget = new QWidget;
scrollArea->setWidget(widget);
QScrollBar *vScrollBar = new QScrollBar(Qt::Vertical, this);
QScrollBar *hScrollBar = new QScrollBar(Qt::Horizontal, this);
scrollArea->setVerticalScrollBar(vScrollBar);
scrollArea->setHorizontalScrollBar(hScrollBar);
layout->addWidget(vScrollBar, 0, 0);
layout->addWidget(hScrollBar, 1, 1);
QHBoxLayout *hBoxLayout = new QHBoxLayout;
hBoxLayout->addStretch();
hBoxLayout->addWidget(widget);
layout->addLayout(hBoxLayout);
这样就可以将 QScrollArea 的滚动条显示在左侧。注意,这种方法需要根据实际情况进行调整,以便在 QScrollArea 中正确放置控件和滚动条。
在设计器里边用滚动区很简单,先这样然后这样就可以了。。。
但是手写代码没理解的话就容易出现不显示,加了布局器没拉伸的效果。如上没铺满示例。
重要的就是这个
setWidgetResizable(true);
文档解释
这个属性用于控制滚动区域是否需要调整视图小部件的大小。
如果这个属性被设置为false(默认值),滚动区域表示它的小部件的大小。不管这个属性是什么,你都可以使用widget()->resize()以编程方式调整小部件的大小,滚动区域会自动调整到新的大小。
如果这个属性设置为true,滚动区域将自动调整小部件的大小,以避免滚动条,或者利用额外的空间。