我的應用程序有非矩形的彈出窗口小部件。檢測QWidget外部點擊
其類定義了以下以實現透明度:
setAttribute(Qt::WA_NoSystemBackground, true);
setAttribute(Qt::WA_TranslucentBackground, true);
我也使用:
this->setWindowFlags(Qt::Popup| Qt::FramelessWindowHint);
的問題是,在Windows 7,一種自動的「影子」被上所繪製的我的窗戶的底部和右側。這是非常不可取的。
所以,我嘗試使用Qt ::工具,而不是Qt的::彈出
this->setWindowFlags(Qt::Tool | Qt::FramelessWindowHint);
此作品在視覺上。沒有陰影,但現在我的窗口小部件窗口外面點擊鼠標不會自動關閉/隱藏它,因爲它會用Qt :: Popup完成。
所以,我需要這兩個解決方案之一:
- 有Qt的::彈出和一種方法擺脫Windows自動陰影裝飾
- 辦法讓Qt的::工具窗口在其外部發生鼠標點擊。
一注:我的應用程序是爲Windows XP及以上構建的。我不能僅使用Vista/Win7運行時DLL,也不能使用「Windows XP」和「Vista和更高版本」單獨的版本。
任何建議將受到歡迎。
Qt :: WindowType :: NoDropShadowWindowHint可以擦除陰影效果 – Enzojz 2016-12-19 09:44:55