Qt 子类化的QWidget设置了背景色后使用paintEvent绘制边框无效
可能是由于QWidget的背景色覆盖了边框的绘制导致边框无效。解决办法是在paintEvent事件中先调用父类的绘制方法,然后再绘制边框。
以下是一个示例代码:
class MyWidget : public QWidget
{
public:
MyWidget(QWidget *parent = nullptr) : QWidget(parent)
{
setFixedSize(200, 200);
setStyleSheet("background-color: red;");
}
protected:
void paintEvent(QPaintEvent *event)
{
// 调用父类的绘制方法
QWidget::paintEvent(event);
// 绘制边框
QPainter painter(this);
painter.setPen(QPen(Qt::black, 2));
painter.drawRect(rect());
}
};
在这个示例中,我们先设置了QWidget的背景色为红色,然后在paintEvent事件中先调用了父类的绘制方法,然后再使用QPainter绘制了一个黑色的边框。这样就可以同时显示背景色和边框了
原文地址: https://www.cveoy.top/t/topic/iO9T 著作权归作者所有。请勿转载和采集!