gpt4 book ai didi

qt - 在 QT 中实现具有多个小部件的 View 的最佳方式?

转载 作者:行者123 更新时间:2023-12-01 19:05:06 26 4
gpt4 key购买 nike

我想要一个 View ,在其中向用户显示各种 QLabel、.jpg 图像和项目列表(例如 QListView)。我希望所有这些都可以垂直滚动。填充各种小部件的数据将由显示此 View 的函数设置。我更喜欢在代码中实现它,而不使用 GUI 设计器。

我考虑过创建我的自定义小部件继承自 QWidget,但我发现它很难实现。这是最好的方法吗?

您能否举例说明我应该如何进行?

提前致谢

最佳答案

//Using QScrollArea

#ifndef MYWIDGET_H
#define MYWIDGET_H

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

class MyWidget: public QWidget
{
Q_OBJECT
public:
explicit MyWidget(QWidget *parent = 0);

private:
QScrollArea *scrollArea;
QWidget *widget;
QLabel *label1;
QLabel *label2;
QLabel *label3;
QVBoxLayout *vLayout;
};

#endif // MYWIDGET_H


#include "mywidget.h"

MyWidget::MyWidget(QWidget *parent) :
QWidget(parent)
{
scrollArea=new QScrollArea(this);
widget=new QWidget;
label1=new QLabel("Label1");
label2=new QLabel("Label2");
label3=new QLabel("Label3");

label1->setFixedSize(200,100);
label2->setFixedSize(200,100);
label3->setFixedSize(200,100);
vLayout=new QVBoxLayout;

vLayout->addWidget(label1);
vLayout->addWidget(label2);
vLayout->addWidget(label3);
widget->setLayout(vLayout);

scrollArea->setWidget(widget);
scrollArea->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
scrollArea->resize(200,150);
}

关于qt - 在 QT 中实现具有多个小部件的 View 的最佳方式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5112207/

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