最终运行效果:
涉及到的Qt知识点: 事件:鼠标事件,键盘事件,Paint事件,以及图片遮罩,定时器
新建一个空的qmake工程, loginDlg, 找一个带透明背景的png图片作为背景图
建一个重载于QWidget的类,然后在构造的时候将图形加载并处理好,实现paintEvent函数,进行图形的绘制
需要理解的是Mask。 Mask怎么讲呢?做了一张图片,简单直观地了解下Mask:
重载的类:
.h
#ifndef LOGINDLG_H
#define LOGINDLG_H
#include <QLabel>
#include <QWidget>
class loginDlg : public QWidget
{
Q_OBJECT
public:
explicit loginDlg(QWidget *parent = 0);
protected:
// 重载函数 响应鼠标事件 用于界面拖动
virtual void mousePressEvent(QMouseEvent *event);
virtual void mouseMoveEvent(QMouseEvent *event);
// 实现键盘事件
virtual void keyPressEvent(QKeyEvent *event);
// 重绘
virtual void paintEvent(QPaintEvent *event);
private slots: