sit*_*eal 6 qt derived-class qwidget
我可以在主窗口类的一个函数中创建和查看QWidget:
..
// ok
QWidget *w = new QWidget(this);
w->setGeometry(400,300,400,300);
w->setStyleSheet("background-color:white;");
w->show();
..
Run Code Online (Sandbox Code Playgroud)
但是当我尝试通过创建另一个派生自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();
..
Run Code Online (Sandbox Code Playgroud)
什么可能导致这个?
注意:关于这个问题的一切: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);
}
Run Code Online (Sandbox Code Playgroud)
我认为这会解决问题。
| 归档时间: |
|
| 查看次数: |
1992 次 |
| 最近记录: |