首页
Web开发
Windows程序
编程语言
数据库
移动开发
系统相关
微信
其他好文
会员
首页
>
Windows程序
> 详细
Qt :非window子窗体的透明度设置
时间:
2015-11-25 08:42:52
阅读:
240
评论:
0
收藏:
0
[点我收藏+]
标签:
?问题的由来
心血来潮,想利用QTimer 配合 setWindowOpacity()方法来实现一个窗体淡入的效果。
?实验代码
粗糙的实验代码:
void Widget::on_pushButton_clicked()
{
QTimer *timerOpacity =
new QTimer(
this);
connect(timerOpacity,SIGNAL(timeout()),
this,SLOT(changeOpacity()));
timerOpacity->start(100);
}
void Widget::changeOpacity()
{
if (opalevel > 8)
return;
double opacity[9] = {0.9,0.8,0.7,0.6,0.5,0.4,0.3,0.2,0.1};
ui->stackedWidget->setWindowOpacity(opacity[opalevel]);
ui->widget->setWindowOpacity(opacity[opalevel]);
this->setWindowOpacity(opacity[opalevel]);
qDebug()<<
"opalevel = "<< opalevel <<
" ui->widget opacity:"<<ui->widget->windowOpacity();
qDebug()<<
"opalevel = "<< opalevel <<
" ui->stackedWidget opacity:"<<ui->stackedWidget->windowOpacity();
qDebug()<<
"opalevel = "<< opalevel <<
" ui opacity : "<<
this->windowOpacity()<<endl;
}
?实验失败
现象是主窗体的有淡入的效果,即透明度有变化,但是子窗体没有,opacity始终为1 。
Log :
opalevel = 0 ui->widget opacity: 1
opalevel = 0 ui->stackedWidget opacity: 1
opalevel = 0 ui opacity 0.898039
......
opalevel = 8 ui->widget opacity: 1
opalevel = 8 ui->stackedWidget opacity: 1
opalevel = 8 ui opacity 0.0980392
?失败原因
void QWidget::setWindowOpacity(qreal opacity)
{
Q_D(QWidget);
if (!isWindow())
return;
//...
}
?解决方案
QGraphicsOpacityEffect
// in the constructor
opacityEffect =
new QGraphicsOpacityEffect;
ui->widget->setGraphicsEffect(opacityEffect);
...
// in changeOpacity()
opacityEffect->setOpacity(opacity[opalevel]);
?效果图
http://blog.csdn.net/yiyaaixuexi/article/details/6780551
Qt :非window子窗体的透明度设置
标签:
原文地址:http://www.cnblogs.com/findumars/p/4993570.html
踩
(
0
)
赞
(
0
)
举报
评论
一句话评论(
0
)
登录后才能评论!
分享档案
更多>
2021年07月29日 (22)
2021年07月28日 (40)
2021年07月27日 (32)
2021年07月26日 (79)
2021年07月23日 (29)
2021年07月22日 (30)
2021年07月21日 (42)
2021年07月20日 (16)
2021年07月19日 (90)
2021年07月16日 (35)
周排行
更多
动态 WebApi 引擎使用教程(3行代码完成动态 WebApi 构建)
2021-07-28
windows 查看文件的md5/sha1/sha256
2021-07-28
git windows下换行符问题 LF与CRLF转换
2021-07-27
FileExistsError: [WinError 183] 当文件已存在时,无法创建该文件。
2021-07-26
K8S--可视化界面Kubernetes Dashboard(API Server方式)
2021-07-26
Redis安装成windows服务
2021-07-26
c#32位支持大内存(>2gb)
2021-07-23
【c#】Dev BarStaticItem问题汇总
2021-07-23
Exception: URL fetch failure on https://s3.amazonaws.com/text-datasets/nietzsche.txt: None -- [WinError 10054] 远程主机强迫关闭了一个现有的连接。
2021-07-22
WinForm使用DataGridView实现类似Excel表格的查找替换
2021-07-22
友情链接
兰亭集智
国之画
百度统计
站长统计
阿里云
chrome插件
新版天听网
关于我们
-
联系我们
-
留言反馈
© 2014
mamicode.com
版权所有 联系我们:gaon5@hotmail.com
迷上了代码!