当前位置:编程学习 > wap >>

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
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,