新建了一个 QWidget,里面放了2个 QLabel,模拟 QToolButton,只是想将 ICON 图标做成圆角而已。在Qt设计师里面设置了 QWidget 背景颜色,以及鼠标悬停变色。在 Qt 设计师预览是生效的。可在程序里动态创建添加到主控件里面却死活不显示。
解决方法,在子控件QWidget 中重写 paintEvent 函数。(之前的Qss保存不变)
void MySubWidget::paintEvent(QPaintEvent* )
{
QStyleOption opt;
opt.init(this);
QPainter p(this);
style()->drawPrimitive(QStyle::PE_Widget, &opt, &p, this);
}