zoukankan      html  css  js  c++  java
  • 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就正常了。

  • 相关阅读:
    arduino电子艺术PWM直流电机电调实验
    横坐标轴移动位置
    将不才则三军倾
    Source Insight常用快捷键及注释快捷键设置
    dos2unix批量转换的脚本
    win8: ListView
    win8: Asynchronous Programming in JavaScript with “Promises”
    WindJS 中的$await
    iphone:关于沙盒 存储路径
    win8: hello gril
  • 原文地址:https://www.cnblogs.com/AfterTheRainOfStars/p/3895570.html
Copyright © 2011-2022 走看看