QT之QListWidget的介绍

QListWidget常用成员函数

    • 1、成员函数介绍
    • 2、例子
      • 显示图片和按钮的例子

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   
#include   
#include   
#include   
#include   
#include   
#include   
#include   
#include   
  
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,并使用这个自定义的部件创建了三个列表项。

你可能感兴趣的:(qt,开发语言)