達到的效果:上層實作qt繪制畫面,下層實時播放視頻
關鍵:兩層控制元件
實作方法:繼承qwidget自定義控制元件,創建后使用show函式顯示,建構式無需傳參,跟子視窗一樣;
重點:透明;關鍵函式:SetWidoWflags()、setAttribute
方法:①,實作無邊框:
設定無邊界視窗并置頂
setWindowFlags(Qt::CustomizeWindowHint|Qt::FramelessWindowHint | Qt::Tool);
setWindowFlags(Qt::FramelessWindowHint | Qt::SubWindow | Qt::WindowStaysOnTopHint );// 設定無邊框、子視窗
②,設定視窗透明:this->setWindowOpacity(0.1);//設定透明0-全體透明
③,設定視窗模態:setWindowModality(Qt::NonModal);、//非模態
還有一些函式也可以實作視窗透明,本方法沒用到;
setWindowFlags(Qt::FramelessWindowHint);
//setAttribute(Qt::WA_NoSystemBackground);//表明指定的widget沒有背景,
//setAttribute(Qt::WA_TranslucentBackground);//表明widget應該具有半透明的背景,即任何不透明的區域都將是半透明的,
setAttribute(Qt::WA_TransparentForMouseEvents);//將禁止想widget和它的子widget傳遞滑鼠事件,
這個函式也十分有用;
實作視窗透明后便可以重寫painterevent函式實作透明繪制了,擔心線條不清楚的話可以在繪繪畫板上繪制,將繪畫板設為透明,不影響繪制形狀的顯示;
好記性不如爛筆頭,記下來總會有用
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/398886.html
標籤:其他
上一篇:如何設計一個能打的秒殺系統
下一篇:機器學習 之 填空題
