1 简要
QListWidget是一个便利的类,是用于显示列表的控件。它提供了一个类似于QListView所提供的列表视图,具有用于添加和删除项的经典的基于项的接口,QListWidget的内部模型由QListWidgetItem来管理。
- QListWidget的优势在于它易于使用,尤其是对于不熟悉模型-视图编程的开发人员来说,利用它可以快速构建一个列表窗口,并且可以支持多种操作,如复选框、图标等。
- QListView类相比之下更加灵活,它不需要使用QListWidget类的那些额外功能,因此更加轻量级,可以更方便地自定义实现。QListView可以使用QAbstractItemModel类或其子类作为数据模型,可以自定义项的展示方式和交互。
开发环境
- 系统:Window10
- Qt版本:5.14.2
- 编译器:MinGW_64
2 实现效果

3 实现步骤
3.1 创建一个自定义信息Item类
由于QListWidget类提供的函数只有添加QString、QListWidgetItem的项,无法满足自定义的需求。所以需要自定义一个继承自QWidget的信息类。并通过setItemWidget()函数将自己的类添加到Item里,这种方式的好处在于在Item里可以放很多不同的部件以及自定义布局等。
/**
* @brief 自定义信息Item类
*/
class CustomizeItem : public QWidget
{
Q_OBJECT
public:
explicit CustomizeItem(QWidget *parent = nullptr);
void setHeadPath(const QString &path);
void setName(const QString &name);
void setInfo(const QString &info);
void setTime(const QString &time);
protected:
bool eventFilter(QObject *watched, QEvent *event) override;
void resizeEvent(QResizeEvent *event) override;

文章介绍了如何在Qt环境中使用QListWidget创建列表,并通过自定义Item类实现更复杂的功能,如添加头像、右键菜单等。同时对比了QListWidget和QListView的适用场景,QListWidget适合简单列表展示,而QListView适合需要高度定制和复杂交互的场景。
最低0.47元/天 解锁文章
1729

被折叠的 条评论
为什么被折叠?



