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 }