我创建了QWidget的这样一个非常简单的子类:QWidget中的一个简单的子类不作为一个QWidget工作
class WorldView : public QWidget
{
Q_OBJECT
public:
explicit WorldView(QWidget *parent = 0);
signals:
public slots:
};
WorldView::WorldView(QWidget *parent) : QWidget(parent)
{
}
我在创建主窗口中它的实例是这样的:
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
explicit MainWindow(QWidget *parent = 0);
~MainWindow();
protected:
virtual void resizeEvent(QResizeEvent* event) override;
private:
WorldView* _worldView;
};
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent)
{
_worldView = new WorldView(this);
_worldView->setStyleSheet(QString("* {background-color : black}"));
}
MainWindow::~MainWindow()
{
delete _worldView;
}
void MainWindow::resizeEvent(QResizeEvent *event)
{
_worldView->resize(size());
}
但是小部件并未按预期显示。
我曾尝试致电show()
,但它仍未显示。
奇怪的是,当我用QWidget
代替WorldView
时,小部件显示。
我不知道为什么。
忘了setupUI的世界观? – FreddyKay
@FreddyKay没有UI文件。所以不需要setupUI。 – crupest
你对'_worldView-> resize(size())的期望是什么?'size()'返回(或被抛弃)的是什么? – mvidelgauz