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

问题描述

关于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文件,觉得和问题没有太大的关联。

解决方案

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

申请堆空间可以解决

解决方案二:

QT 弹出窗口

时间: 2024-09-10 11:56:34

qt5-关于Qt弹出的窗口闪退的问题的相关文章

ssh js-SSH框架,主页面收索显示产品信息,弹出子窗口,添加产品,子页面提交后刷新主页面

问题描述 SSH框架,主页面收索显示产品信息,弹出子窗口,添加产品,子页面提交后刷新主页面 在子页面,有提交按钮. JS代码 function addProductInfo(){ document.addProduct.action = "${pageContext.request.contextPath}/admin/addProduct.action"; document.addProduct.submit(); window.opener.location.reload(); /

win7通过cmd命令禁止文件启动时弹出警告窗口的方法

  现在电脑中都会安装很多的杀毒软件,对自己的电脑进行保护,以防一些文件对电脑进行恶性的破坏,这对于系统来说是件好事,可以有效保护我们的电脑,但是每一次打开一个未知文件的时候,都会弹出安全警告提示窗口,很多情况下该文件对于电脑并没有任何的威胁,每次都会跳出各种提示,让用户看的很心烦.那么怎么才能让安全警告提示窗口不再弹出呢?下面小编就以win7系统为例,教大家Win7如何使用命令禁止文件启动时弹出警告窗口. win7通过禁止文件启动时弹出警告窗口的方法 1.使用组合快捷键win键+r键打开运行窗

网页设计技巧:弹出网页窗口设计全攻略

攻略|技巧|设计|网页|网页设计 如何利用网页弹出各种形式的窗口,我想大家大多都是知道些的,但那种多种多样的弹出式窗口是怎么搞出来的,我们今天就来学习一下: 1.弹启一个全屏窗口 <html> <body >; <b>www.webjx.com</b> </body> </html> 2.弹启一个被F11化后的窗口 <html> <body >; <b>www.webjx.com</b>

Javascript实例教程(1) 创建弹出式窗口

javascript|创建|教程 利用Javascript创建弹出式窗口 好吧,言归正转,开始我们的第一个教程吧.利用Javascript创建弹出式窗口的目的实际上是打开另外的浏览器窗口.你可以设置这个浏览器窗口的一些属性,如高度.宽度以及是否让该窗口有一个状态条或者工具条.在下面的例子中,我将窗口设置为:350 x 400,即高度为350像素,宽度为400像素:其中也包括了另外的一些设置,如滚动条:而将其它的设置(如状态条.菜单条)都设置为没有(no). 下面是具体的代码,你可以将它放置到网页

弹出网页窗口设计全攻略

攻略|设计|网页 如何利用网页弹出各种形式的窗口,我想大家大多都是知道些的,但那种多种多样的弹出式窗口是怎么搞出来的,我们今天就来学习一下: 1.弹启一个全屏窗口 <html> <body >; <b>www.e3i5.com</b> </body> </html> 2.弹启一个被F11化后的窗口 <html> <body >; <b>www.e3i5.com</b> </body

弹出网页窗口全攻略(html/hta)

攻略|网页 如何利用网页弹出各种形式的窗口,我想大家大多都是知道些的,但那种多种多样的弹出式窗口是怎么搞出来的,我们今天就来学习一下: 1.弹启一个全屏窗口 <html><body >;<b>www.e3i5.com</b></body></html> 2.弹启一个被F11化后的窗口 <html><body >;<b>www.e3i5.com</b></body></h

Javascript如何使弹出的窗口在屏幕的中央

javascript 怎么用Javascript来打开一个窗口?简直是侮辱我们Web程序员的智慧! 可是,今天用户提出了新的需求,他要弹出的那个窗口要在整个屏幕的中央! 于是,Google一下,找一篇很多人转载过的文章如下: <SCRIPT LANGUAGE="JavaScript"> var  s = ""; s += " 网页可见区域宽:"+ document.body.clientWidth; s += " 网页可见区

Dreamweaver教程:弹出网页窗口设计全攻略

dreamweaver|攻略|教程|设计|网页 如何利用网页弹出各种形式的窗口,我想大家大多都是知道些的,但那种多种多样的弹出式窗口是怎么搞出来的,我们今天就来学习一下: 1.弹启一个全屏窗口 <html> <body >; <b>www.webjx.com</b> </body> </html> 2.弹启一个被F11化后的窗口 <html> <body >; <b>www.webjx.com<

Dreamweaver MX 2004高级技巧(4)制作弹出小窗口

dreamweaver|高级|技巧 弹出窗口经常用于发布站内公告,或作为一个网站的广告来使用,今天给大家介绍如何使用Dreamweaver MX 2004制作弹出小窗口 1. 新建立一个html页面,设置页面属性.左边界,顶部边界为 0 ,在标题处输入标题名称. 2. 在页面中插入图片.也可以是文字, Flash 动画等.小窗口页面就准备好了. 让一个页面把刚才的小窗口弹出: 1. 新建一个需要添加弹出小窗口页面,当然也可以打开自己制作的网站的首页,在标签选择器中选择" body "标