QListWidget是 Qt 中的一个用于显示列表型数据的部件,它可以用于显示一列项目(item)的列表。每个项目通常可以包含文本、图标或其他自定义内容。

  • 创建一个 QListWidget 实例
    在你的主窗口或其他窗口部件中创建一个 QListWidget 实例:
QListWidget *listWidget = new QListWidget(this);

这会创建一个空的 QListWidget

  • 添加项目(Item)
    使用 addItem 方法向 QListWidget 添加项目。每个项目可以包含文本、图标或其他自定义内容。
QListWidgetItem *item1 = new QListWidgetItem("Item 1");
QListWidgetItem *item2 = new QListWidgetItem("Item 2");

listWidget->addItem(item1);
listWidget->addItem(item2);

你还可以使用 setTextsetIcon 和其他方法来自定义项目的内容和样式。

  • 响应项目点击事件
    如果你想在项目被点击时执行某些操作,可以连接 itemClicked 信号:
connect(listWidget, SIGNAL(itemClicked(QListWidgetItem*)), this, SLOT(onItemClicked(QListWidgetItem*)));

然后,在你的类中创建一个槽函数 onItemClicked 来处理项目点击事件。

  • 查询数据库

使用 QSqlQuery 来执行数据库查询并获取数据。你可以执行 SELECT 查询来检索数据,然后将结果添加到 QListWidget 中。

QSqlQuery query;
query.exec("SELECT column_name FROM your_table_name"); // 替换为你的查询语句和表名

while (query.next()) {
    QString data = query.value(0).toString(); // 获取查询结果
    QListWidgetItem *item = new QListWidgetItem(data);
    listWidget->addItem(item);
}
  • 使用 sortItems 方法进行排序
listWidget->sortItems(Qt::AscendingOrder); // 按升序排序
// 或者
listWidget->sortItems(Qt::DescendingOrder); // 按降序排序

上述示例中,sortItems 方法可以根据项目的文本内容进行排序,并指定排序的顺序(升序或降序)。

  • 自定义排序函数

如果你需要更复杂的排序逻辑,你可以使用自定义排序函数。首先,你需要定义一个比较函数,然后将其设置为 QListWidget 的排序函数。

// 自定义比较函数
bool customCompare(QListWidgetItem *item1, QListWidgetItem *item2) {
    QString text1 = item1->text();
    QString text2 = item2->text();
    return text1.toLower() < text2.toLower(); // 自定义排序逻辑,不区分大小写
}

// 在列表部件上应用自定义排序函数
listWidget->sortItems(Qt::AscendingOrder);
listWidget->sortItems(customCompare);