我有三个小部件的层次结构:

每个小部件的背景色都更改为不同的颜色(使用QSS),因此输出如下所示:

这里一切都很好。但是,如果我将widget提升到一个派生自QWidget的类,它就会消失如下:


这是我的Custom小部件的代码:
海关:
#ifndef CUSTOM_H
#define CUSTOM_H
#include <QWidget>
class Custom : public QWidget
{
Q_OBJECT
public:
explicit Custom(QWidget *parent = 0);
};
#endif // CUSTOM_Hcustom.cpp:
#include "custom.h"
Custom::Custom(QWidget *parent) :
QWidget(parent)
{
}有人能解释为什么会发生这些奇怪的事情吗?我该怎么做才能让绿色小部件出现呢?
发布于 2014-10-04 14:49:48
不久前,我已经回答了a similar question :)
为了使qss样式表适用于直接QWidget子类,您应该实现如下所示的paintEvent:
void Custom::paintEvent(QPaintEvent *)
{
QStyleOption opt;
opt.init(this);
QPainter p(this);
style()->drawPrimitive(QStyle::PE_Widget, &opt, &p, this);
}发布于 2021-02-18 01:22:57
对于QLineEdit,请记住像以下构造函数那样调用/继承基类
QLineEdit_KPE::QLineEdit_KPE(QWidget *parent) :
QLineEditt(parent)
{
}https://stackoverflow.com/questions/26193840
复制相似问题