QWidget對樣式表設置邊框無效的解決方法


參考:https://blog.csdn.net/u010168781/article/details/80338445

在無邊框時,主窗口背景是黑色的。如果在主窗口上顯示透明的繼承自QWidget窗口時,看不到其邊界。想要顯示邊界,可用如下方法。

先設置邊框顏色,然后在繪制函數中繪制。

1     setWindowFlags(Qt::FramelessWindowHint | Qt::WindowStaysOnTopHint);//無邊框 置頂
2     setAttribute(Qt::WA_TranslucentBackground);//透明
3     QString styleSheet = "background-color:rgba(0,0,0,0.2);border:1px solid white";
4     setStyleSheet(styleSheet);
5    

 

1  繼承QWidget,添加對paintEvent的實現,如下
2 
3 void MyWgt::paintEvent(QPaintEvent *)
4 {
5     QStyleOption opt;
6     opt.initFrom(this);
7     QPainter p(this);
8     style()->drawPrimitive(QStyle::PE_Widget, &opt, &p, this);//繪制樣式
9 }

 


免責聲明!

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



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