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

这篇博客介绍了如何在股票智能分析软件中开发一个自定义的QListWidget项,该组件包含图片、文字和按钮,并能根据相似度自动排序。首先,创建了一个自定义的widget界面,然后定义了类实现该界面,包括设置相似度百分比和目标图片。接着,定义了一个添加到匹配列表的函数,通过创建新的widget对象并添加到QListWidget中,同时实现按相似度降序排序。最后,更新匹配列表的数量显示。
摘要由CSDN通过智能技术生成

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

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

  

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

bclshuai

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值