QT之QListWidget的介绍

1、成员函数介绍

1)QListWidget(QWidget *parent = nullptr)
构造函数,创建一个新的QListWidget对象。

2)void addItem(const QString &label)
在列表末尾添加一个项目,项目标签为label。

3)void addItem(QListWidgetItem *item)
在列表末尾添加一个项目,项目为item。

4)void insertItem(int row, const QString &label)
在指定的行插入一个项目,项目标签为label。

5)void insertItem(int row, QListWidgetItem *item)
在指定的行插入一个项目,项目为item。

6)void removeItemWidget(QWidget *widget)
从列表中移除指定的widget。

7)int rowCount() const
返回列表中的行数。

8)QListWidgetItem *item(int row) const
返回指定行的项目。

9)QListWidgetItem *takeItem(int row)
移除并返回指定行的项目。

10)int currentRow() const
返回当前选中的行的索引。

11)void setCurrentRow(int row)
设置当前选中的行。

12)QListWidgetItem *currentItem() const
返回当前选中的项目。

13)void setCurrentItem(QListWidgetItem *item)
设置当前选中的项目。

14)void sortItems(Qt::SortOrder order = Qt::AscendingOrder)
按照指定的顺序对列表中的项目进行排序。

15)void clear()
移除列表中的所有项目。

16)void setSelectionMode(QAbstractItemView::SelectionMode mode)
设置列表的选择模式。

17)QAbstractItemView::SelectionMode selectionMode() const
返回列表的当前选择模式。

注意,对于大部分函数来说,如果列表为空或者索引超出范围,它们将不会有任何效果。此外,对列表的更改可能会触发一些信号,如itemChanged、itemClicked等,你可以通过连接这些信号来响应用户的交互。

2、例子

显示图片和按钮的例子

QListWidget中显示图片和按钮,你需要创建自定义的列表项。QListWidget本身并不直接支持这种功能,但是你可以通过创建自定义的QWidget,然后将它们添加到QListWidget中来实现。

#include <QApplication>  
#include <QListWidget>  
#include <QListWidgetItem>  
#include <QPushButton>  
#include <QLabel>  
#include <QHBoxLayout>  
#include <QWidget>  
#include <QVBoxLayout>  
#include <QPixmap>  
  
class CustomItem : public QWidget {  
public:  
    CustomItem(const QString& text, const QPixmap& pixmap, QWidget* parent = nullptr)   
        : QWidget(parent), textLabel(new QLabel(text, this)), pixmapLabel(new QLabel(this)), button(new QPushButton("Button", this)) {  
        QHBoxLayout* layout = new QHBoxLayout(this);  
        layout->addWidget(textLabel);  
        layout->addWidget(pixmapLabel);  
        layout->addWidget(button);  
        setLayout(layout);  
        pixmapLabel->setPixmap(pixmap);  
    }  
  
private:  
    QLabel* textLabel;  
    QLabel* pixmapLabel;  
    QPushButton* button;  
};  
  
int main(int argc, char *argv[])  
{  
    QApplication app(argc, argv);  
    QListWidget listWidget;  
    QPixmap pixmap("path_to_your_image.jpg"); // Replace with the actual path to your image.  
    listWidget.addItem(new QListWidgetItem(new CustomItem("Item 1", pixmap)));  
    listWidget.addItem(new QListWidgetItem(new CustomItem("Item 2", pixmap)));  
    listWidget.addItem(new QListWidgetItem(new CustomItem("Item 3", pixmap)));  
    listWidget.show();  
    return app.exec();  
}

在这个例子中,我创建了一个名为CustomItem的自定义QWidget类,它包含一个QLabel用于显示文本,一个QLabel用于显示图片,以及一个QPushButton。然后,我创建了一个QListWidget,并使用这个自定义的部件创建了三个列表项。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

付宇利

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值