大港天津网站建设,比较好的网站空间,网站界面建议,合肥装修公开视频 - 链接点击跳转公开课程博客首页 - 链接点击跳转博客主页
目录
QListWidget概述
使用场景
常见样式
QListWidget属性设置
显示方式 (Display)
交互行为 (Interaction)
高级功能 (Advanced)
QListWidget常见操作
内容处理
增加项目
删除项目…公开视频 - 链接点击跳转公开课程博客首页 - 链接点击跳转博客主页
目录
QListWidget概述
使用场景
常见样式
QListWidget属性设置
显示方式 (Display)
交互行为 (Interaction)
高级功能 (Advanced)
QListWidget常见操作
内容处理
增加项目
删除项目
修改项目
查找项目
信号交互
项目选择变化
项目双击
项目右键点击 QListWidget概述
QListWidget 是一个基于 QListView 的高级控件它内置了一个标准的模QListWidgetItem适合快速实现列表功能。
QListView 相比QListWidget 更加简单易用但在灵活性和复杂数据操作上稍显不足。
使用场景
简单的文本或图标列表显示。快速开发无需复杂模型的数据列表。不需要与其他视图共享数据模型的场景。
常见样式
仅文本项目显示简单的文本列表项。图标和文本项目显示带有图标的文本列表项。自定义项目通过 QListWidgetItem 或自定义控件实现更加复杂和个性化的列表项。 QListWidget属性设置
显示方式 (Display) viewMode设置显示模式。 QListView::ListMode项目以列表形式显示垂直排列。QListView::IconMode项目以图标形式显示水平排列。 gridSize设置项目布局的网格大小适用于 IconMode。 iconSize设置项目图标的大小。 wordWrap设置文本是否自动换行。
交互行为 (Interaction) dragEnabled启用拖动功能。 dragDropMode设置拖放模式 QAbstractItemView::NoDragDrop禁用拖放。QAbstractItemView::DragOnly仅支持拖动。QAbstractItemView::DropOnly仅支持放置。QAbstractItemView::DragDrop支持拖动和放置。 defaultDropAction设置默认拖放操作如复制、移动等。 editTriggers设置编辑触发器如双击、选择变化等。 selectionMode设置选择模式单选、多选等。 selectionBehavior设置选择行为选择项目、行或列。
高级功能 (Advanced)
layoutMode设置布局模式SinglePass 或 Batched。flow设置项目布局方向从左到右或从上到下。resizeMode设置调整模式固定大小或自动调整。spacing设置项目之间的间距。uniformItemSizes是否统一项目大小。alternatingRowColors是否启用交替行颜色。 QListWidget常见操作
内容处理
增加项目
void MainWindow::on_pushButton_addItem_clicked()
{ QListWidgetItem* item new QListWidgetItem(); item-setText(QString().asprintf(Item %d, ui-listWidget-count())); item-setIcon(QIcon(:/icons/icon.png)); ui-listWidget-addItem(item);
}
删除项目
void MainWindow::on_pushButton_removeItem_clicked()
{ QListWidgetItem* item ui-listWidget-currentItem(); delete ui-listWidget-takeItem(ui-listWidget-row(item));
}
修改项目
void MainWindow::on_pushButton_modifyItem_clicked()
{ QListWidgetItem* item ui-listWidget-currentItem(); if (item) { item-setText(Modified Item); }
}
查找项目
void MainWindow::on_pushButton_findItem_clicked()
{ QListQListWidgetItem * items ui-listWidget-findItems(Search Text, Qt::MatchContains); for (QListWidgetItem* item : items) { item-setBackground(Qt::yellow); // 高亮显示找到的项目 }
}
信号交互
项目选择变化
connect(ui-listWidget, QListWidget::itemSelectionChanged, this, [this]() { QListWidgetItem* item ui-listWidget-currentItem(); if (item) { qDebug() Selected item - item-text(); }
});
项目双击
connect(ui-listWidget, QListWidget::itemDoubleClicked, this, [](QListWidgetItem *item) { qDebug() Item double clicked - item-text();
});
项目右键点击 ui-listWidget-setContextMenuPolicy(Qt::CustomContextMenu);connect(ui-listWidget, QListWidget::customContextMenuRequested, this, [this](const QPoint pos) {QListWidgetItem* item ui-listWidget-itemAt(pos);if (item) {QMenu contextMenu(this);QAction* editAction contextMenu.addAction(Edit);QAction* deleteAction contextMenu.addAction(Delete);QAction* selectedAction contextMenu.exec(ui-listWidget-mapToGlobal(pos));if (selectedAction editAction) {item-setText(Edited via Context Menu);} else if (selectedAction deleteAction) {delete ui-listWidget-takeItem(ui-listWidget-row(item));}}});