关于Qt退出码255的一点总结

简介: Qt程序退出码255 先说症状,程序运行正常,但是在关闭程序时,却出现的异常,提示退出码为255。查看了一翻代码,也没有找到有什么问题,百度上也没找到有效的解决方法。后来偶然发现了问题所在,原因是在析构函数中,先删除了父窗体指针,再删除子窗体指针引起的。

Qt程序退出码255

先说症状,程序运行正常,但是在关闭程序时,却出现的异常,提示退出码为255。查看了一翻代码,也没有找到有什么问题,百度上也没找到有效的解决方法。后来偶然发现了问题所在,原因是在析构函数中,先删除了父窗体指针,再删除子窗体指针引起的。这算是一个低级问题了。调整删除指针的顺序后,程序欢快的结束了。

#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>
#include <QPushButton>

class MainWindow : public QMainWindow
{
    Q_OBJECT

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

private:
    QPushButton * btn1;
    QPushButton * btn2;
};

#endif // MAINWINDOW_H


//----

#include "mainwindow.h"

MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
{
    btn1 = new QPushButton(this);
    btn2 = new QPushButton(btn1);
}

MainWindow::~MainWindow()
{
    delete btn1;  // 先删除父类
    delete btn2;  // 再删除子类,退出码为255
}

只需要调整一下delete的顺序,
delete btn2;
delete btn1;

OK,程序正常结束,退出码为0

相关文章
|
11月前
|
存储 Cloud Native Linux
C++Qt防止程序重复启动
C++Qt防止程序重复启动
|
7天前
|
网络协议 API Windows
MASM32v11编程调用Process32First失败: 程序发出命令,但命令长度不正确
MASM32v11编程调用Process32First失败: 程序发出命令,但命令长度不正确
|
5月前
Win7下Qt调用打印机打印时提示另存为pdf问题
Win7下Qt调用打印机打印时提示另存为pdf问题
53 2
Qt-修改界面无效的可能情况
Qt修改界面无效的可能情况
462 0
|
前端开发 测试技术
clswindow使用案例:防止vb程序重复打开,如果重复打开则激活当前已经打开的程序
clswindow使用案例:防止vb程序重复打开,如果重复打开则激活当前已经打开的程序
268 0
clswindow使用案例:防止vb程序重复打开,如果重复打开则激活当前已经打开的程序
|
Java 数据安全/隐私保护
|
JavaScript 前端开发 安全
获取 NodeJS 程序退出码
想要退出正在运行的 NodeJS 程序,我们既可以通过 Ctrl + C 的方式,也可以通过process.exit()来执行退出。
229 0
获取 NodeJS 程序退出码
PyQt5 技术篇-调用输入对话框(QInputDialog)获取用户输入内容。
PyQt5 技术篇-调用输入对话框(QInputDialog)获取用户输入内容。
912 0
PyQt5 技术篇-调用输入对话框(QInputDialog)获取用户输入内容。
win10关机时提示需要结束程序
win10关机时提示需要结束程序
578 0