Qt 将小部件添加到滚动区域

Qt 将小部件添加到滚动区域,qt,layout,qwidget,qscrollarea,Qt,Layout,Qwidget,Qscrollarea,我正在为下载列表创建一个窗口dimanica。 但是滚动条不起作用,“小部件子项”被“剪切” 我哪里会错呢?谢谢 来源: QWidget *central = new QWidget; QScrollArea *scroll = new QScrollArea; QVBoxLayout *layout = new QVBoxLayout(scroll); scroll->setWidget(central); scroll->setWidget

我正在为下载列表创建一个窗口dimanica。 但是滚动条不起作用,“小部件子项”被“剪切”

我哪里会错呢?谢谢

来源:

    QWidget *central = new QWidget;
    QScrollArea *scroll = new QScrollArea;
    QVBoxLayout *layout = new QVBoxLayout(scroll);
    scroll->setWidget(central);
    scroll->setWidgetResizable(true);

    int i=0;
    while(i<10){
        QWidget *p1 = new QWidget;
        QHBoxLayout *hl = new QHBoxLayout(p1);
        QLabel *label1 = new QLabel("test");
        QLabel *label2 = new QLabel("0%");
        hl->addWidget(label1);
        hl->addWidget(label2);
        layout->addWidget(p1);
        i++;
    }

    QMainWindow *w = new QMainWindow;
    w->setGeometry(50,50,480,320);
    w->setCentralWidget(scroll);
    w->show();
QWidget*central=新的QWidget;
QScrollArea*滚动=新QScrollArea;
QVBoxLayout*布局=新的QVBoxLayout(滚动);
滚动->设置小部件(中央);
滚动->设置WidgetResizeable(真);
int i=0;
while(iaddWidget,label1);
hl->addWidget(label2);
布局->添加小部件(p1);
i++;
}
QMainWindow*w=新的QMainWindow;
w->setGeometry(50,5048320);
w->setCentralWidget(滚动);
w->show();

发现错误时,应将
布局设置为widget
central
而不是
滚动

QWidget *central = new QWidget;
QScrollArea *scroll = new QScrollArea;
QVBoxLayout *layout = new QVBoxLayout(central);
scroll->setWidget(central);
scroll->setWidgetResizable(true);
编辑:

<>你的标签已经占用了所有可用的空间,如果你注意到了,代码> Label1在中间的左边边界结束,其中代码> Label2在正确的边界开始和结束。如果我正确地理解了,你想<代码> Label1获取所有可用的空间,而Label2用百分位数只占用空间。不需要了吗

阅读有关
QSizePolicy
类的内容,并在标签上使用
setSizePolicy()
。尝试在label2声明之后插入此行:

QLabel *label2 = new QLabel("0%");
label2->setSizePolicy(QSizePolicy::QSizePolicy::Maximum,QSizePolicy::Maximum);

然后在
QMainWindow*w=new QMainWindow;

之前添加行
layout->addStretch();
这看起来像是在尝试创建一个列表。也许可以看看
QListWidget
QListView
QAbstractListModel
二人组?很好,但只有水平拉伸?你想保持几何图形吗(50,5048320)和拉伸标签占据所有水平空间?是的,我希望每个项目(小部件子项)水平占据所有空间(仅水平)。你能帮我吗?谢谢你的关注。不需要固定高度或宽度。窗口可以调整大小。我不明白,你想在我的测试应用程序中实现什么,一切都很完美。为什么不发布你当前情况的屏幕截图,以及如果你替换
而(我