首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么QWidget在升职后就消失了?

为什么QWidget在升职后就消失了?
EN

Stack Overflow用户
提问于 2014-10-04 14:36:11
回答 2查看 653关注 0票数 1

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

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

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

这是我的Custom小部件的代码:

海关:

代码语言:javascript
复制
#ifndef CUSTOM_H
#define CUSTOM_H

#include <QWidget>

class Custom : public QWidget
{
    Q_OBJECT
public:
    explicit Custom(QWidget *parent = 0);
};

#endif // CUSTOM_H

custom.cpp:

代码语言:javascript
复制
#include "custom.h"

Custom::Custom(QWidget *parent) :
    QWidget(parent)
{
}

有人能解释为什么会发生这些奇怪的事情吗?我该怎么做才能让绿色小部件出现呢?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-10-04 14:49:48

不久前,我已经回答了a similar question :)

为了使qss样式表适用于直接QWidget子类,您应该实现如下所示的paintEvent

代码语言:javascript
复制
void Custom::paintEvent(QPaintEvent *)
{
    QStyleOption opt;
    opt.init(this);
    QPainter p(this);
    style()->drawPrimitive(QStyle::PE_Widget, &opt, &p, this);
}
票数 2
EN

Stack Overflow用户

发布于 2021-02-18 01:22:57

对于QLineEdit,请记住像以下构造函数那样调用/继承基类

代码语言:javascript
复制
QLineEdit_KPE::QLineEdit_KPE(QWidget *parent) : 
QLineEditt(parent)
{
}
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26193840

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档