gpt4 book ai didi

qt - QWidget 派生类不可见

转载 作者:行者123 更新时间:2023-12-04 15:26:02 25 4
gpt4 key购买 nike

我可以在主窗口类的功能之一中创建并查看 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

最佳答案

您可以重写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);
}

我认为这将解决问题。

关于qt - QWidget 派生类不可见,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8246535/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com