Qt 父窗口中显示其他QWidget,必须在初始化中处理才能显示?
一个窗体,里面希望显示一个来自于其他QWidget的内容,遇到了非常奇怪的问题,请各位大牛帮我找找原因。谢谢.代码很简单
mainwindow.h 主界面
#include <QMainWindow>
#include "child.h"
namespace Ui {
class MainWindow;
}
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
explicit MainWindow(QWidget *parent = 0);
~MainWindow();
private slots:
void on_pushButton_clicked();
private:
Ui::MainWindow *ui;
Child * child ;
};
mainwindow.cpp
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
child =new Child(this);
}
MainWindow::~MainWindow()
{
delete ui;
}
void MainWindow::on_pushButton_clicked()
{
child->init();
}
Child.h 子界面
#include <QWidget>
#include <QLabel>
class Child : public QWidget
{
Q_OBJECT
public:
explicit Child(QWidget *parent = 0);
void init();
signals:
public slots:
private:
QLabel * label;
};
child.cpp
Child::Child(QWidget *parent) :
QWidget(parent)
{
}
void Child::init()
{
label = new QLabel(this);
label->setText("come in");
}
奇怪的问题就来了:
如果在MainWindow.cpp的构造函数中直接写
child =new Child(this);
child->init();
则能正常显示;
如果在MainWindow.cpp中按钮点击函数on_pushButton_clicked()中写:
child =new Child(this);
child->init();
child->show();则可以正常显示
但是如果将child =new Child(this);代码放到构造函数中,则不能显示child,或者不加上show,也不会出现child。。。想了很久也不明白为什么。。请各位大神指点下。。谢谢 --------------------编程问答-------------------- 你好,一个QWidget窗体只能按装一个layout,多个布局,必须删除先前的布局
补充:移动开发 , Qt