QWidget派生类不可见

发布于 2024-12-17 14:13:04 字数 785 浏览 3 评论 0原文

我可以在主窗口类的函数之一中创建并查看 QWidget:

..
// ok
QWidget *w = new QWidget(this);
w->setGeometry(400,300,400,300);
w->setStyleSheet("background-color:white;");
w->show();
..

但是当我尝试通过创建从 QWidget 派生的另一个类来执行类似的操作时,我看不到任何内容:

class MyWidget : public QWidget
{
        public:
        MyWidget(QWidget *sParent):QWidget(sParent)
        {
        }
};

        ..
        // nothing visible happens.
        MyWidget *w = new MyWidget(this);
        w->setGeometry(400,300,400,300);
        w->setStyleSheet("background-color:white;");
        w->show();
        ..

可能会导致此问题的原因是什么?

注意:有关此问题的所有内容:http://pastebin.com/haCHfqnu

I can create and see a QWidget in one of the functions of main window class:

..
// ok
QWidget *w = new QWidget(this);
w->setGeometry(400,300,400,300);
w->setStyleSheet("background-color:white;");
w->show();
..

but when I try to do something similar by creating another class which is derived from QWidget, I can't see anything:

class MyWidget : public QWidget
{
        public:
        MyWidget(QWidget *sParent):QWidget(sParent)
        {
        }
};

        ..
        // nothing visible happens.
        MyWidget *w = new MyWidget(this);
        w->setGeometry(400,300,400,300);
        w->setStyleSheet("background-color:white;");
        w->show();
        ..

what may cause this?

Note: Everything about this question: http://pastebin.com/haCHfqnu

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

趁年轻赶紧闹 2024-12-24 14:13:04

您可以重写paintEvent。

void MyWidget::paintEvent(QPaintEvent *event)
{
    QWidget::paintEvent(event);
    QStyleOption opt;
    opt.init(this);
    QPainter p(this);
    style()->drawPrimitive(QStyle::PE_Widget, &opt, &p, this);
}

我认为这会解决问题。

You can rewrite the paintEvent.

void MyWidget::paintEvent(QPaintEvent *event)
{
    QWidget::paintEvent(event);
    QStyleOption opt;
    opt.init(this);
    QPainter p(this);
    style()->drawPrimitive(QStyle::PE_Widget, &opt, &p, this);
}

I think that will fix the problem.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文