Dead-Rabbit 2015-07-20 08:04 采纳率: 0%
浏览 12413

关于Qt弹出的窗口闪退的问题

(:з」∠)本人新手,前两天刚刚接触了Qt,今天想试试能不能做出弹出窗口,很幸运,成功弹出窗口,不过不知道为啥窗口刚刚出现就消失了,,,有没有大神可以帮下忙呢~~~谢谢啦,第一次发帖。。。。
dialog.h文件:

 #ifndef DIALOG_H
#define DIALOG_H

#include <QDialog>
#include<QLabel>

namespace Ui {
class Dialog;
}

class Dialog : public QDialog
{
    Q_OBJECT

public:
    explicit Dialog(QWidget *parent = 0);
    ~Dialog();

private:
    Ui::Dialog *ui;
    QLabel *label;
};

#endif // DIALOG_H

mainwindow.h文件:

#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>

namespace Ui {
class MainWindow;
}

class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    explicit MainWindow(QWidget *parent = 0);
    ~MainWindow();

private:
    Ui::MainWindow *ui;
private slots:
    void push();
};

#endif // MAINWINDOW_H

main.cpp文件:

#include "mainwindow.h"
#include <QApplication>
#include "dialog.h"

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    MainWindow w;
    w.show();

    return a.exec();
}

dialog.cpp文件:

#include "dialog.h"
#include "ui_dialog.h"
#include<QGridLayout>
#include<windows.h>
Dialog::Dialog(QWidget *parent) :
    QDialog(parent),
    ui(new Ui::Dialog)
{
    ui->setupUi(this);
    label = new QLabel("label1");
    QGridLayout *layout = new QGridLayout(this);
//    Sleep(5000);
    label->show();
//    Sleep(5000);
}

Dialog::~Dialog()
{
//    Sleep(5000);
    delete ui;
}

mainwindow.cpp文件

#include "mainwindow.h"
#include "ui_mainwindow.h"
#include"dialog.h"
#include<QPushButton>
#include<windows.h>
MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);
    connect(ui->button1,SIGNAL(clicked()),this,SLOT(push()));
}

MainWindow::~MainWindow()
{
    delete ui;
}
int times=1;
void MainWindow::push(){
    for(long int i=0;i<times;i++)
    {
        QString temStr = ui->line->text();
        times = temStr.toInt();
        Dialog one;
        one.show();
    }
    times = 1;
}

自己做了两个UI文件,觉得和问题没有太大的关联。

  • 写回答

1条回答 默认 最新

  • iroan 2016-04-29 09:47
    关注

    因为你的dialog是申请的栈空间,函数运行结束后内存释放,界面自然消失。

    申请堆空间可以解决

    评论

报告相同问题?

悬赏问题

  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作
  • ¥15 求NPF226060磁芯的详细资料