博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[QT编程]QT实现的一个渐隐渐显窗体
阅读量:4445 次
发布时间:2019-06-07

本文共 1084 字,大约阅读时间需要 3 分钟。

这次做了一个渐隐渐显的小窗体,窗体用的是之前讲的透明不规则窗体,普通的窗体也可以实现渐隐渐显。

 

原理:窗体启用了一个QTimer来控制其透明度实现渐隐渐显。

 

关键代码

该窗体类中定义了几个变量:

    double opacityInc;//透明度增长值

    double maxOpacity;//最大透明度

    bool isDisplay;//是否已经显示

    int displayTime;//已经显示了多久

    int displayInterval;//窗口显示时间

构造时给定一些初始值:

    opacityInc = 0.08;

    maxOpacity = 0.8;

    timerInterval = 50;

    displayInterval = 4000;

    isDisplay = false;

    displayTime = 0;

timer的timeout代码:

void MessageDialog::timeout()

{

    if(this->isVisible())

    {

        if(isDisplay)

        {

            if(this->windowOpacity() < maxOpacity)

            {

                this->setWindowOpacity(this->windowOpacity() + opacityInc);

            }

            else

            {

                displayTime += timerInterval;

                if (displayTime >= displayInterval)

                {

                    displayTime = 0;

                    isDisplay = false;

                }

            }

        }

        else

        {

            if(this->windowOpacity() > 0.0)

            {

                this->setWindowOpacity(this->windowOpacity() - opacityInc);

            }

            else

            {

                //this->hide();//这里隐藏之后,在linux下会导致第二次显示的时候位置在左上角

                qApp->exit();//为了让示例程序能够正常退出,这里使用qApp->exit()

            }

        }

    }

}

 

这里顺带说一下让QLabel自动换行的代码:

    lbl->setWordWrap(true);//自动换行

    lbl->setAlignment(Qt::AlignHCenter);//对齐方式

 

效果图:

 

附件:

源码MessageDialog.zip

下载地址:

转载于:https://www.cnblogs.com/cateats2016/archive/2012/07/19/2600095.html

你可能感兴趣的文章
SCSS的基本操作
查看>>
"安装程序无法定位现有系统分区" 问题解决
查看>>
.NET中栈和堆的比较
查看>>
【莫队】bzoj 3781,bzoj 2038,bzoj 3289
查看>>
如何优化limit
查看>>
几种常用数据库字段类型查询语句
查看>>
字符全排列
查看>>
提高效率必须改掉的7种习惯
查看>>
Java判断语句中判断条件的执行顺序
查看>>
Windows平台下tomcat+java的web程序持续占cpu问题调试
查看>>
OO第四次博客作业!
查看>>
HDU 吉哥系列故事——完美队形II 騰訊馬拉松初賽第二輪D題
查看>>
项目中使用的axios
查看>>
c++学习-继承
查看>>
[转]SQL Server 性能调优(io)
查看>>
设计模式学习-每日一记(6.原型模式)
查看>>
不已0开头的数字正则
查看>>
21.优先队列的实现
查看>>
HTML撑起浮动子元素得父元素高度
查看>>
LeetCode--018--四数之和(java)
查看>>