參考: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 }