ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

QListWidget添加自定义的widget并自动排序

2020-09-29 14:02:27  阅读:360  来源: 互联网

标签:pItem QListWidget 自定义 widget matchData ui CompareView include


自己开发了一个股票智能分析软件,功能很强大,需要的点击下面的链接获取:

https://www.cnblogs.com/bclshuai/p/11380657.html

1.问题描述

项目中需要添加自定义的widget,有图片文字和按钮,如下图所示,但是Qlistwidget常规只能添加图片加文字,就需要自定义一个widget上面添加内容,并且自动按照相似度排序。

 

 

 2.实现步骤

(1)自定义widgetItem界面

 

 

 

(2)定义类去实现这个界面

//头文件
#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)定义往里面添加的函数

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;
}

  

标签:pItem,QListWidget,自定义,widget,matchData,ui,CompareView,include
来源: https://www.cnblogs.com/bclshuai/p/13749268.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有