Qt实现鼠标进入显示按钮离开隐藏按钮
自己开发了一个股票智能分析软件,功能很强大,需要的点击下面的链接获取:
https://www.cnblogs.com/bclshuai/p/11380657.html
扫码关注公众号
目录
1 实现目标
2 实现思路
1 实现目标
项目中需要实现鼠标进入Widget界面,显示按钮或图标,鼠标离开的时候,隐藏按钮或图标。或者实现鼠标进入离开时背景色发生变化。
2 实现思路
自定义一个类继承QWidget类,重写鼠标进入和离开函数。在widget上添加按钮。鼠标进入时,显示按钮,鼠标离开时隐藏按钮。
(1)定义一个界面
(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();
MatchData GetMatchData() { return m_matchData; };
Ui::MatchWidget ui;
protected:
void enterEvent(QEvent *e); //进入QWidget瞬间事件
void leaveEvent(QEvent *e); //离开QWidget瞬间事件
private:
MatchData m_matchData;
//QImage* m_imgTarget = NULL; //
//QImage* m_imgSource = NULL; //
};
#endif // COMPAREVIEW_H
源文件
#include "CompareView.h"
CompareView::CompareView(MatchData matchData)
{
ui.setupUi(this);
setWindowModality(Qt::NonModal);
setWindowFlags(Qt::FramelessWindowHint);
this->resize(114, 114);
m_matchData = matchData;
ui.MatchPercent->setText(QString::number(m_matchData.matchPercent*100).left(2) +"%");
QPixmap pix(matchData.strTargetPath);
pix = pix.scaled(this->size(), Qt::KeepAspectRatio, Qt::SmoothTransformation);
ui.PicTarget->setPixmap(pix);
ui.pushButtonPlay->hide();
ui.pushButtonMax->hide();
ui.labelTime->hide();
}
CompareView::~CompareView()
{
}
void CompareView::enterEvent(QEvent *e)
{
ui.PicTarget->setStyleSheet("background: rgba(0,0,0,0.60);");
ui.pushButtonPlay->show();
ui.pushButtonMax->show();
ui.labelTime->show();
}
void CompareView::leaveEvent(QEvent *e)//离开隐藏closebutton
{
ui.pushButtonPlay->hide();
ui.pushButtonMax->hide();
ui.labelTime->hide();
ui.PicTarget->setStyleSheet("background:rgba(56, 156, 255,0.08);");
}
【推荐】国内首个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