Qt5.3中qml ApplicationWindow设置窗口无边框问题

这个版本的qt在这里有点bug。。

设置ApplicationWindow的flags属性为Qt.FramelessWindowHint的确可以使程序无边框,但是同时程序在任务栏的图标也没了。

看文档发现 ApplicationWindow 是由 QQuickWindow 实现的,QQuickWindow 又继承于 QWindw。

直接创建一个QWindow对象实验了一下,代码如下

 

QWindow window;
window.setFlags( Qt::FramelessWindowHint );
window.setWidget( 300 );
window.setHeight( 300 );
window.show();

 

 编译运行竟然连个窗口都没有,后来我又改了改代码,如下:

QWindow window;
window.setWidget( 300 );
window.setHeight( 300 );
window.show();
window.setFlags( Qt::FramelessWindowHint );

 把window.setFlags( Qt::FramelessWindowHint );这句放到调用show()之后就一切正常了,任务栏上的图标不会消失了

但是,bug来了,程序退出之后任务栏的图标不会随之消失,必须用鼠标点击一下或者等一会才会消失,其他问题倒是还没发现

 

现在知道了在窗口显示之后再设置flags就好了,于是我在qml中加了一个定时器,时间为1毫秒,running为ture,在触发定时器之后再设置flags。

1毫秒的延时窗口肯定已经显示出来了,这时候再设置flags就正常了。

 

转载于:https://www.cnblogs.com/AfterTheRainOfStars/p/3895570.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值