自己開發了一個股票智能分析軟件,功能很強大,需要的點擊下面的鏈接獲取:
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);");
}