QT的视图类(QTableView和QListView)(二)
QListView开发工具QT CreatorQListView是 Qt 中用于显示列表数据的视图控件。它继承自QAbstractItemView通常与模型如QStringListModel、QStandardItemModel或自定义模型配合使用用于呈现数据项的列表。1、QListView和QStringListModel配合使用// 创建数据list QStringList list {item1, item2, item3}; // 创建model, 并绑定list数据 QStringListModel *model new QStringListModel(list); // 给listView设置model ui-listView-setModel(model);创建的model也要注意声明周期见QT的视图类QTableView和QListView一-CSDN博客QListView的QStringListModel增删数据其实就是对QStringList进行操作。// 添加数据 // 通过model获取原有的数据list QStringList updatelist model-stringList(); // 往原有的数据list中添加数据 updatelist item4 item5; // 给model设置更新后的list model-setStringList(updatelist); // 更新listView ui-listView-update(); // 通过model获取原有的数据list QStringList updatelist2 model-stringList(); // 删除数据 updatelist2.takeFirst(); // 给model设置更新后的list model-setStringList(updatelist2); // 更新listView ui-listView-update();如果需要获取点击的是哪一个数据可以使用点击事件void onSelectionChanged(const QItemSelection selected, const QItemSelection deselectedvoid onSelectionChanged(const QItemSelection selected, const QItemSelection deselected) { QModelIndexList indexes selected.indexes(); if (!indexes.isEmpty()) { QModelIndex index indexes.first(); qDebug() Selected item: index.data().toString(); } }2、QListView和QStandardItemModel配合使用使用步骤和QStringListModel一样简单的使用方式不做多余的介绍了。QStandardItemModel *model new QStandardItemModel(); model-setColumnCount(3); model-setHorizontalHeaderLabels({Name, Age, City}); QStandardItem *item1 new QStandardItem(Alice); QStandardItem *item2 new QStandardItem(25); QStandardItem *item3 new QStandardItem(New York); model-appendRow({item1, item2, item3}); // 创建 QTableView 来显示模型 QTableView *view new QTableView(); view-setModel(model);很多时候列表数据需要的不仅仅数数据也可能需要按钮、图片、点击等功能下面提供一个添加了按钮以及按钮事件的例子。// listviewshow.h #ifndef LISTVIEWSHOW_H #define LISTVIEWSHOW_H #include QWidget #include QListView #include QStringListModel namespace Ui { class listviewshow; } class listviewshow : public QWidget { Q_OBJECT public: explicit listviewshow(QWidget *parent nullptr); ~listviewshow(); void init(); public slots: void onButtonClicked(int); private: Ui::listviewshow *ui; QListView *p_listview; }; #endif // LISTVIEWSHOW_H// listviewshow.cpp #include listviewshow.h #include ui_listviewshow.h #include QVBoxLayout #include QStandardItemModel #include QSignalMapper listviewshow::listviewshow(QWidget *parent) : QWidget(parent), ui(new Ui::listviewshow), p_listview(nullptr) { ui-setupUi(this); init(); } listviewshow::~listviewshow() { delete ui; } void listviewshow::init() { // 创建 QListView 和模型 QStandardItemModel *model new QStandardItemModel(this); // 添加多个项到模型 for (int i 0; i 4; i) { QStandardItem *item new QStandardItem(); item-setSizeHint(QSize(10, 50)); model-appendRow(item); } ui-listView-setModel(model); // 创建信号映射器 QSignalMapper *signalMapper new QSignalMapper(this); // 为每个项设置自定义 QWidget for (int row 0; row model-rowCount(); row) { QWidget *widget new QWidget(); //widget-setMinimumHeight(25); QHBoxLayout *layout new QHBoxLayout(widget); QLabel *label new QLabel(Item QString::number(row 1), widget); QPushButton *button new QPushButton(Button, widget); // 将按钮与信号映射器绑定 signalMapper-setMapping(button, row); // 映射索引到按钮 connect(button, QPushButton::clicked, signalMapper, QOverload::of(QSignalMapper::map)); layout-addWidget(label); layout-addWidget(button); widget-setLayout(layout); ui-listView-setIndexWidget(model-index(row, 0), widget); } // 连接信号映射器的信号到槽 connect(signalMapper, SIGNAL(mapped(int)), this, SLOT(onButtonClicked(int))); } void listviewshow::onButtonClicked(int row) { qDebug() Button clicked for item row: row; //确认是哪一个按钮后就能通过按钮的序号到list中去拿对应的数据 //ui-listView-model()-index(row, 0); QWidget *targetWidget ui-listView-indexWidget(ui-listView-model()-index(row, 0)); QLabel *label targetWidget-findChildQLabel *(); qDebug() Found QLabel: label-text(); }

相关新闻

Windows系统文件ubpm.dll丢失找不到问题解决

Windows系统文件ubpm.dll丢失找不到问题解决

在使用电脑系统时经常会出现丢失找不到某些文件的情况,由于很多常用软件都是采用 Microsoft Visual Studio 编写的,所以这类软件的运行需要依赖微软Visual C运行库,比如像 QQ、迅雷、Adobe 软件等等,如果没有安装VC运行库或者安装…

2026/8/14 6:55:14 阅读更多 →
企业智脑2.2.0版本预告:畅谈五大AI数字员工板块规划,如何用数字员工重塑商业生态?

企业智脑2.2.0版本预告:畅谈五大AI数字员工板块规划,如何用数字员工重塑商业生态?

引言:当数字员工成为企业新器官 2025年,全球企业数字化转型已进入"数字器官移植"阶段。企业智脑2.0推出的数字员工板块,首次实现了从单点智能到生态智能的跨越。不同于传统RPA工具,这套系统通过五大相互联动的子模块&am…

2026/8/14 6:55:14 阅读更多 →
【热门开源项目下载】agilebpm-ui 前端工程全指南

【热门开源项目下载】agilebpm-ui 前端工程全指南

【热门开源项目下载】agilebpm-ui 前端工程全指南 1. 项目基础介绍 agilebpm-ui 是基于 Vue3 TypeScript 的前端工程,采用 ElementPlus 组件库开发,专为 AgileBPM 工作流平台设计。支持 Chrome/Edge/Firefox/Safari 等现代浏览器,提供三种布…

2026/8/14 6:55:13 阅读更多 →

最新新闻

从题解社区到算法实战:以订单聚类为例解析解题思维与工程优化

从题解社区到算法实战:以订单聚类为例解析解题思维与工程优化

1. 项目概述:从“OVO题解”看解题社区的生态与价值最近在技术社区和编程爱好者圈子里,经常能看到“OVO题解”这个提法。乍一看,它像是一个针对特定平台或题集的解题方案合集,但如果你深入接触过算法刷题、技术面试准备或者在线编程…

2026/8/14 11:58:36 阅读更多 →
【RT-DETR涨点改进】CVPR 2025 | 全网独家创新!注意力改进篇 | 引入RALA秩增强线性注意力模块,含多种创新改进,助力 RT-DETR 目标检测有效涨点

【RT-DETR涨点改进】CVPR 2025 | 全网独家创新!注意力改进篇 | 引入RALA秩增强线性注意力模块,含多种创新改进,助力 RT-DETR 目标检测有效涨点

一、本文介绍 🔥本文给大家介绍使用RALA模块改进RT-DETR可以显著提升其性能,尤其在复杂场景和小物体检测中。通过增强线性注意力机制的矩阵秩,RALA改善了模型对空间信息的建模能力,提升了特征的多样性和全局信息的融合,进而提高了检测精度。同时,RALA保持了线性复杂度,…

2026/8/14 11:58:36 阅读更多 →
【RT-DETR涨点改进】CVPR 2025 | 全网创新首发、主干改进篇 | RAVLT主干让 RT-DETR 更加强大!通过增强线性注意力机制,特别在小目标和复杂背景的检测上表现突出

【RT-DETR涨点改进】CVPR 2025 | 全网创新首发、主干改进篇 | RAVLT主干让 RT-DETR 更加强大!通过增强线性注意力机制,特别在小目标和复杂背景的检测上表现突出

一、本文介绍 ⭐本文介绍将RAVLT主干改进RT-DETR主干网络,能够显著提升其空间特征建模能力和全局信息融合能力,特别在小物体和复杂背景的检测上表现突出。通过增强线性注意力机制,RAVLT提高了模型对全局和局部特征的建模能力,解决了RT-DETR在复杂场景中的不足。同时,RAVL…

2026/8/14 11:58:36 阅读更多 →
开源大模型实战指南:从环境部署到本地知识问答系统构建

开源大模型实战指南:从环境部署到本地知识问答系统构建

在当今人工智能技术飞速发展的浪潮中,开源大模型正扮演着越来越关键的角色。对于广大开发者、技术团队乃至整个行业而言,理解开源大模型的优势、挑战及其背后的协作模式,是把握技术脉搏、构建自主可控能力的重要一步。本文将深入探讨开源大模…

2026/8/14 11:58:36 阅读更多 →
2021年CSP-J初赛真题及答案解析(完善程序1)

2021年CSP-J初赛真题及答案解析(完善程序1)

2021年CSP-J初赛真题及答案解析(完善程序1) 第1题 (Josephus 问题)有 (n) 个人围成一个圈,依次标号 (0) 至 (n-1)。从 (0) 号开始,依次 (0, 1, 0, 1, \dots) 交替报数,报到 (1) 的人会离开,直至圈中只剩下…

2026/8/14 11:58:36 阅读更多 →
psrecord扩展指南:如何通过二次开发添加自定义监控指标

psrecord扩展指南:如何通过二次开发添加自定义监控指标

psrecord扩展指南:如何通过二次开发添加自定义监控指标 【免费下载链接】psrecord Record the CPU and memory activity of a process :chart_with_upwards_trend: 项目地址: https://gitcode.com/gh_mirrors/ps/psrecord psrecord是一款轻量级进程监控工具&…

2026/8/14 11:57:36 阅读更多 →

日新闻

临沂网站建设铭镇:深耕本土数字生态,以匠心铸就企业品牌核心竞争力

临沂网站建设铭镇:深耕本土数字生态,以匠心铸就企业品牌核心竞争力

在这个流量为王、视觉至上的互联网时代,对于临沂乃至整个山东乃至全国的传统中小企业来说,拥有一张精美的“数字名片”早已不再是可选项,而是生存的必答题。每当夜幕降临,沂河两岸灯火辉煌,物流之都的喧嚣逐渐沉淀为对未来的思考。我们常常听到老板们在茶余饭后探讨:为什…

2026/8/14 0:00:26 阅读更多 →
Flutter与OpenHarmony实现剧本杀组队表单开发实战

Flutter与OpenHarmony实现剧本杀组队表单开发实战

1. 项目概述在移动应用开发领域,跨平台框架Flutter因其高效的开发体验和出色的性能表现,已经成为众多开发者的首选。而OpenHarmony作为新兴的操作系统平台,其开放性和灵活性为开发者提供了全新的可能性。本文将聚焦于一个实际应用场景——剧本…

2026/8/14 0:00:26 阅读更多 →
大连网站建设找简维科技:为您打造懂业务更懂用户的数字化转型引擎

大连网站建设找简维科技:为您打造懂业务更懂用户的数字化转型引擎

在这个数字化浪潮席卷全球的今天,企业想要在激烈的市场竞争中站稳脚跟,拥有一张好看的“数字名片”已经远远不够了。很多老板在刚开始接触互联网业务时,都有一个共同的困惑:为什么我花了钱建的网站,就像是在真空中自嗨?访客进来转了两圈就跑了,线索石沉大海,甚至连客服…

2026/8/14 0:01:27 阅读更多 →

周新闻

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁 【免费下载链接】baidupankey 在线查询网盘提取码(维护中 rm repo) 项目地址: https://gitcode.com/gh_mirrors/ba/baidupankey 你是否曾经在深夜寻找一份重要资料&#x…

2026/8/13 2:38:34 阅读更多 →
如何快速生成中国车牌图片:Python开源工具完整指南

如何快速生成中国车牌图片:Python开源工具完整指南

如何快速生成中国车牌图片:Python开源工具完整指南 【免费下载链接】chinese_license_plate_generator 中国车牌生成器 项目地址: https://gitcode.com/gh_mirrors/ch/chinese_license_plate_generator 中国车牌生成器是一个基于Python的开源项目&#xff0c…

2026/8/13 10:41:52 阅读更多 →
收藏!小白程序员轻松入门大模型,从Harness工程开始实践

收藏!小白程序员轻松入门大模型,从Harness工程开始实践

文章强调学习大模型不应只关注模型本身,而应重视模型外的系统搭建,即Harness。提出AgentModelHarness的实用公式,详细介绍Harness的四个层次:持久化层、执行层、控制层和观察与验证层。文章还探讨了上下文工程、工具设计、AGENTS.…

2026/8/13 10:41:51 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/13 10:41:50 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/13 10:41:49 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/13 10:41:49 阅读更多 →