gpt4 book ai didi

c++ - QT内容大小超过窗口大小时不出现滚动条

转载 作者:行者123 更新时间:2023-11-28 06:07:57 25 4
gpt4 key购买 nike

我正在使用 qt,我正在动态创建以下图片的对象(每个时间轴都是一个小部件)。结构是我将此小部件添加到 verticalLayout,即 scrollArea 包含的小部件。但不幸的是,滚动条没有出现,而应该出现: enter image description here如果我增加窗口的大小,内容就会正确显示: enter image description here但是由于在窗口内创建的时间线数量可能大于屏幕尺寸,所以我需要一个滚动条。可能是什么问题呢?那个

编辑:一些源代码,主窗口的构造函数:一些代码不存在,因为它是用 QTCreator 创建的

Schedule::Schedule(QString pathname, QWidget *parent) :
QWidget(parent),
ui(new Ui::Schedule)
{
ui->setupUi(this);
ui->scrollArea->setLayout(ui->pageLayout);

traceParser parser(pathname);
parser.readJson();
ArchitectureParameter arch = parser.getArchParam();

QString taskName;


for(std::list<QString>::iterator taskNameIter = parser.getTaskNames().begin();
taskNameIter != parser.getTaskNames().end(); taskNameIter++)
{
taskName = *taskNameIter;
TaskSchedule *t = new TaskSchedule(this , taskName, 80, arch.nCPU(), arch.maxTime(),
parser.getExecList(taskName), parser.getTaskSimpleEventsMap(taskName));
t->resize(600, t->height());
t->resize(600, t->width());
ui->pageLayout->addWidget(t);

}

}

最佳答案

发生这种情况的原因可能是您在 scrollArea 上设置了布局。这是对我有用的快速片段:

QWidget* testWidget = new QWidget;
QVBoxLayout* layout = new QVBoxLayout;
QStringList strings;
strings << "asdfasd" << "asdffdfd" << "asdvvsdf" << "asdfccasdf";
Q_FOREACH(QString string, strings){
TagButton* btn = new TagButton();
btn->setText(string);
layout->addWidget(btn);
}
testWidget->setLayout(layout);

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

scrollArea->show();

请注意,我在 testWidget 上设置布局,然后在 scrollArea 上设置 Widget

关于c++ - QT内容大小超过窗口大小时不出现滚动条,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31987855/

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