gpt4 book ai didi

c++ - 如何将QScrollArea动态添加到StackedWidget页面并向其中添加小部件?

转载 作者:行者123 更新时间:2023-11-30 00:51:34 24 4
gpt4 key购买 nike

我目前正在构建一个应用程序,该应用程序由具有多个页面的 QStackedWidget 组成。该页面本身已添加到设计器中。我能做什么(在代码中):

  • 在页面中添加一个QVBoxLayout
  • 向其中添加一些自定义小部件
  • 设置页面布局

效果很好,我可以看到我的小部件出现在页面上。这些小部件的高度固定为25。当小部件太多时,我看不到所有的小部件。不起作用的是向页面添加一个允许上下滚动的 QScrollArea,以防页面中添加了很多小部件。

所以这是我“按原样”情况的代码:

//The header file:

QVBoxLayout *valuesLayout;

//The corresponding .cpp file

valuesLayout = new QVBoxLayout();
valuesPage->setLayout(valuesLayout); //valuesPage is my QStackedWidget page
for (int j=0; j<100; j++)
{
valuesLayout->addWidget(new PaIndicator(0, "This is a test", 0)); // my custom widgets
}

我必须如何更改/扩展上面的代码才能使我的小部件出现在 QScrollArea 中?

更新:应用下面提到的更改后,我得到了这个: enter image description here

我现在的代码看起来与 Shf 的回答中给出的行完全一样。我感觉我越来越接近了,但这里似乎还是有些不对劲。

最佳答案

你必须 set a widget到您的滚动区域并将内容添加到该小部件:

QScrollArea *scrollArea = new QScrollArea;
QWidget *scrollWidget = new QWidget;
scrollWidget->setLayout(new QVBoxLayout);
scrollArea->setWidget(scrollWidget);
for (int j=0; j<100; j++)
{
scrollWidget->layout()->addWidget(new PaIndicator(0, "This is a test", 0)); // my custom widgets
}

然后将滚动区域添加到堆叠小部件的页面:

valuesLayout->addWidget(scrollArea);

关于c++ - 如何将QScrollArea动态添加到StackedWidget页面并向其中添加小部件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21236765/

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