gpt4 book ai didi

c++ - QT QVBoxLayout 确定/设置滚动可见区域

转载 作者:太空宇宙 更新时间:2023-11-04 14:12:20 27 4
gpt4 key购买 nike

我有一个 QVBoxLayout,它包含足够宽的内容,需要一个水平滚动条。我希望能够使用代码设置可视区域(实际上相当于通过滚动条滚动)。

documentation 中没有任何内容让我觉得能够做到这一点 - 而且我也无法轻松找到检索滚动条并直接修改它的方法。

如何修改内容大于布局大小的 QVBoxLayout 的查看区域?

最佳答案

QVBoxLayout 不提供任何滚动功能,因此 QScrollArea 可能是最简单的解决方案(如建议的那样)。它可能没有您想象的那么困难。

幸运的是,滚动区域相当容易使用。这是一个简单的例子,它用水平滚动条将另一个小部件包装在滚动区域中:

#include <QApplication>
#include <QLabel>
#include <QScrollArea>
#include <QVBoxLayout>
#include <QWidget>

int main(int argc, char** argv)
{
QApplication app(argc, argv);

// Force the label to be wide
QLabel* label = new QLabel("this is a very long label");
label->setMinimumWidth(300);

QWidget* widget = new QWidget();
QVBoxLayout* layout = new QVBoxLayout(widget);
layout->addWidget(label);

QScrollArea* scrollArea = new QScrollArea();
scrollArea->setWidget(widget);

// Force the scroll area to be smaller
scrollArea->resize(200, 100);
scrollArea->show();

app.exec();
return 0;
}

关于滚动区域的一件棘手的事情是控制它们的大小(而不是它们内容的大小)。它们定义了一个固定大小的提示,因此默认情况下,它们可能不会根据需要调整大小。请记住,外部滚动区域的大小提示和/或大小策略将决定它在布局中调整大小的方式。

关于c++ - QT QVBoxLayout 确定/设置滚动可见区域,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13593880/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com