• 6806阅读
  • 8回复

窗口怎么慢慢消失 [复制链接]

上一主题 下一主题
离线zl39049979
 
只看楼主 倒序阅读 楼主  发表于: 2010-11-24
RT,怎么让他慢慢隐去
离线roywillow

只看该作者 1楼 发表于: 2010-11-24
QTimer/timerEvent+setWindowOpacity
专业维修核潜艇,回收二手航母、二手航天飞机,大修核反应堆,拆洗导弹发动机更换机油,无人侦察机手动挡改自动,航天飞机保养换三滤,飞碟外太空年检 ,各型号导弹加装迎宾踏板,高空作业擦洗卫星表面除尘、打蜡及抛光,东风全系列巡航导弹。并提供原子对撞机。量大从优,有正规发票。
离线zl39049979
只看该作者 2楼 发表于: 2010-11-24
回 1楼(roywillow) 的帖子
看来大家都用这个
离线roywillow

只看该作者 3楼 发表于: 2010-11-24
回 2楼(zl39049979) 的帖子
难道还有其他的方法……?(Windows下用api不算……)
专业维修核潜艇,回收二手航母、二手航天飞机,大修核反应堆,拆洗导弹发动机更换机油,无人侦察机手动挡改自动,航天飞机保养换三滤,飞碟外太空年检 ,各型号导弹加装迎宾踏板,高空作业擦洗卫星表面除尘、打蜡及抛光,东风全系列巡航导弹。并提供原子对撞机。量大从优,有正规发票。
离线unizii

只看该作者 4楼 发表于: 2011-02-13
我一般用AnimationFramework  
QPropertyAnimation *pa = new Q.....(QMainWindow,"windowOpecity",this);
pa.setstartvalue(1);
pa.setdurtion(500);
pa.setendvalue(0);
pa.start;
connect(pa,SIGNAL(finished),this,SLOT(close()));
没用IDE,有些单词有错误哈
[ 此帖被unizii在2011-02-13 16:55重新编辑 ]
离线alexltr

只看该作者 5楼 发表于: 2011-02-13
用4楼的方法,我把代码放在 MainWindow::closeEvent(QCloseEvent *e)里,为什么没有起作用呢?
而把代码放在SLOT里,通过PushButton连接才起作用.
如果直接按窗口右上角的【X】关闭窗口也没有渐变效果。

void MainWindow::closeEvent(QCloseEvent *e)
{
QPropertyAnimation *pa = new QPropertyAnimation(this,"windowOpacity",this);
pa->setDuration(100);
pa->setStartValue(1);
pa->setEndValue(0);
pa->start();
connect(pa,SIGNAL(finished()),this,SLOT(close()));
}
我不从事IT,只是喜欢Qt。
我不是程序员,只是与程序有缘。
我写程序,只是为了让工作变得简单有序!

                      ----  一个一直在入门的编程学习者
离线unizii

只看该作者 6楼 发表于: 2011-02-14
你先 e->ignore
离线unizii

只看该作者 7楼 发表于: 2011-02-14
void MainWindow::closeEvent(QCloseEvent *e)
{
    if(this->windowOpacity() != 0)
        e->ignore();
    QPropertyAnimation *pa = new QPropertyAnimation(this,"windowOpacity",this);
pa->setDuration(1000);
pa->setStartValue(1);
pa->setEndValue(0);
pa->start();
connect(pa,SIGNAL(finished()),this,SLOT(close()));
}

就像这样!
离线unizii

只看该作者 8楼 发表于: 2011-02-14
回 5楼(alexltr) 的帖子
因为 pa->start()只是暂时行命令,所以先阻止窗口关闭用ignore();
快速回复
限100 字节
 
上一个 下一个