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等,你可以通过连接这些信号来响应用户的交互。
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,并使用这个自定义的部件创建了三个列表项。