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就正常了。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM