qt关于程序崩溃
来源:互联网 发布:光猫 lan端口绑定 编辑:程序博客网 时间:2024/06/07 01:38
qt程序崩溃最常见的应该是内存溢出,这是编程习惯造成的,
比如:用Qlist的时候,没有检查Qlist.size()的大小,直接就.at()了,这样就造成程序崩溃。
还有就是指针为NULL,结果做为参数或者直接操作使用。也会造成程序崩溃。
所以任何函数,只要带有参数。一定要对参数进行判断,特别是指针或者引用。
接下来介绍一种奇葩的程序崩溃现象。
第一步,我们在ui界面上添加一个按钮Qpushbutton,和一个QlineEdit,
第二步,在按钮的槽函数中写如下代码;
void Widget::on_pushButton_clicked(){ for (int i = 0; i < 10; i++) { ui->lineEdit->setText (i); }}
然后我们运行程序,我们可以看到界面上只会显示9这个数字;
接着:我们改一下代码:
void Widget::on_pushButton_clicked(){ for (int i = 0; i < 10; i++) { ui->lineEdit->setText (i); QThread::msleep (1); }}我们添加一个延时1秒,我们运行后看到的是,9秒后显示的数字是9,之前都没有显示任何数字;
而且会发生一件事情就是,如果你点击其他按钮,或者空白区域会造成程序崩溃;
为什么会造成崩溃,我想不用说大家也清楚吧,因为按钮的点击槽函数还没有执行完成,又点击了其他事件。因为程序是单线程,还在for循环中运行,所以崩溃掉了,
还有一点就 是:明明ui->lineEdit设置了9次文本,为什么只显示了一次,也是因为单线程原因,要等到按钮槽函数运行完之后才会去调用界面的信号;所以,在编码的时候
一定要将耗时比较长的处理事件放到线程去执行,否则程序会出现崩溃或者卡顿。
阅读全文
0 0
- qt关于程序崩溃
- QT程序运行崩溃解决方法
- Qt程序崩溃之自定义类型
- qt中程序崩溃生成dump文件
- qt程序崩溃生成core dump
- QT 配置opencv 运行程序崩溃
- 关于Qt 5-MSVC 2015 64位在 win7 64位系统debug程序崩溃的问题
- 关于Qt 5-MSVC 2015 64位在 win7 64位系统debug程序崩溃的问题
- 关于Qt控制台程序
- 关于Android程序崩溃的一些记录
- 关于初始化顺序表,程序崩溃问题
- 关于LocalBroadcastManager 使用程序崩溃的问题
- 关于程序崩溃的问题总结【经验】
- QT多线程网络编程程序崩溃问题与解决
- QT tcpsocket 在断开后重新连接程序直接崩溃
- QT tcpsocket 在断开后重新连接程序直接崩溃
- 关于让人崩溃的Linux和Qt
- 关于Qt开发Mac程序
- socken.io文档
- Spring RedisTemplate操作-序列化操作
- vuzzer测试示例-base64
- 加载头布局
- Training set,Gallery set,Probe sets
- qt关于程序崩溃
- leetcode 173. Binary Search Tree Iterator 二叉树中序遍历非递归
- WIN7下安装运行mongodb
- 卷积神经网络CNN原理以及TensorFlow实现
- 第一个只出现一次的字符
- 用python读取json格式内容并保存到excel中
- (FRID)射频识别技术设计的智能信箱系统原理及特点
- 三种排序
- ucos ii学习笔记3 消息队列、信号量集