Qt4.8.2 模仿QQ右下角弹窗提示

今天在CSDN偶然看到一位前辈用JAVA写的QQ右下角弹窗提示,而自己正在学习Qt,所以也自己试着写一下,虽然代码乱的一塌糊涂,但最后还是能够运行了。

程序最终运行:

输入内容并点击确定的时候,从右下角平滑弹出下图。


停留10秒后,逐渐变透明并最终消失,可自行关闭和点击浏览按钮浏览输入的网址。

 

一、输入内容的对话框

从QDialog继承,点击确定,内容不为空时,作适当处理。

//点击确定按钮的信号槽
void inputMsg::onOK()
{
    if(lineEditText->text().isEmpty() ||textEditContent->toPlainText().isEmpty() ||lineEditUrl->text().isEmpty())
        return;
    //自定义的信号,把标题,内容,网址发给弹出窗口
    emit initMsg(lineEditText->text(),textEditContent->toPlainText(),lineEditUrl->text());
    //返回accepted
    QDialog::accept();
}

二、弹出窗口

弹出窗口应该是无边框,自绘标题栏的。

标题栏:

从QWidget继承,加入QLabel显示标题,关闭按钮用于向弹出窗口发送关闭信号。并在两者之间加入弹簧支撑。

myPushButton从QPushButton继承。设置按钮的各种事件。

myPushButton.h

private:
    void setBkPalette(int transparency);//设置透明度
protected:
    void enterEvent(QEvent *);//鼠标进入事件
    void leaveEvent(QEvent *);//离开
    void mousePressEvent(QMouseEvent *e);//点击
    void mouseReleaseEvent(QMouseEvent *e);//释放

弹窗窗口:

弹出窗口主要由三部分组成:

主要靠3个定时器:

1.平滑移动的定时器,窗口从右下角缓慢移动到合适位置。

2.窗口停留定时器,移动到合适位置后,开始即时,10S后窗体自动消失,也可自行点击关闭。

3.窗体关闭的定时器,关闭时,采用透明度渐变的方式,完全透明时自动推出。

 

 

基本就是这些了,比较粗糙,源码已上传至:小弟挣分也不容易啊,就不要怪小弟设了1分了。

 

你可能感兴趣的:(cpp,Qt4)