QListWidget添加自定义的widget并自动排序
自己开发了一个股票智能分析软件,功能很强大,需要的点击下面的链接获取:
https://www.cnblogs.com/bclshuai/p/11380657.html
1.问题描述
项目中需要添加自定义的widget,有图片文字和按钮,如下图所示,但是Qlistwidget常规只能添加图片加文字,就需要自定义一个widget上面添加内容,并且自动按照相似度排序。
2.实现步骤
(1)自定义widgetItem界面
(2)定义类去实现这个界面
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 | //头文件<br>#ifndef COMPAREVIEW_H #define COMPAREVIEW_H #include <QWidget> #include "ui_CompareView.h" #include <QImage> #include"FaceDefine.h" class CompareView : public QWidget { Q_OBJECT public : CompareView(MatchData matchData); ~CompareView(); private : Ui::MatchWidget ui; MatchData m_matchData; }; #endif // COMPAREVIEW_H //源文件 #include "CompareView.h" CompareView::CompareView(MatchData matchData) { ui.setupUi( this ); setWindowFlags(Qt::FramelessWindowHint); this ->resize(120, 120); m_matchData = matchData; ui.MatchPercent->setText(QString::number(m_matchData.matchPercent*100)+ "%" ); QPixmap pix(matchData.strTargetPath); pix = pix.scaled( this ->size(), Qt::KeepAspectRatio, Qt::SmoothTransformation); ui.PicTarget->setPixmap(pix); } CompareView::~CompareView() { } |
(3)定义往里面添加的函数
1 2 3 4 5 6 7 8 9 10 11 12 13 | int FaceMatch::AddToMatchList(MatchData matchData) { CompareView* cItemWidget = new CompareView(matchData); //新建widget对象 QListWidgetItem* pItem = new QListWidgetItem(QString::number(matchData.matchPercent)); //新建listwidget的一个item pItem->setData(257, matchData.matchPercent); //设置相似度,方便按照相似度排序 pItem->setTextAlignment(Qt::AlignCenter); //设置居中显示 pItem->setSizeHint(QSize(130, 130)); //设一项的大小 ui.listMatchWidget->addItem(pItem); //加入listwidget ui.listMatchWidget->setItemWidget(pItem, cItemWidget); //将新建的widget加入到item中 ui.listMatchWidget->sortItems(Qt::DescendingOrder); //自动排序 ui.labelMatchCount->setText(QString::number(ui.listMatchWidget->count())); //设置总的数量 return HPR_OK; } |
自己开发了一个股票智能分析软件,功能很强大,需要的关注微信公众号:QStockView
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix