奇怪,, 在构造函数里面初始化竟然出现错误

renzha0013 2012-10-17 10:15:03
求指点。
上代码:
option类
#ifndef MY_OPTION_H
#define MY_OPTION_H

#include <QWidget>

class QLineEdit;
class QLabel;
class QPushButton;

class My_option : public QWidget
{
Q_OBJECT
public:
explicit My_option(QWidget *parent = 0);

protected:
QLabel *label1;
QLabel *label2;
QLineEdit *le_min;
QLineEdit *le_max;
QPushButton *certain_button;

int imin;
int imax;

signals:

public slots:

};

#endif // MY_OPTION_H


option.cpp
#include <QPushButton>
#include <QLineEdit>
#include <QLabel>
#include <QRegExpValidator>
#include <QRegExp>
#include "my_option.h"

My_option::My_option(QWidget *parent) :
QWidget(parent)
{
imin = 1; //初始化这2个竟然程序会出现错误: 程序已经停止
imax = 100;
this->setFixedSize(400, 200);
label1 = new QLabel(tr("range : "), this);
label2 = new QLabel(tr(" -- "), this);
label1->setFixedSize(60, 32);
label2->setFixedSize(60, 32);

le_min = new QLineEdit(this);
le_max = new QLineEdit(this);
le_min->setFixedSize(60, 32);
le_max->setFixedSize(60, 32);

label1->move(40, 40);
le_min->move(100, 40);
label2->move(160, 40);
le_max->move(220, 40);


QRegExp enter_num("[0-9]{1,4}");
QRegExpValidator *le_validator = new QRegExpValidator(enter_num, this);
le_min->setValidator(le_validator);
le_max->setValidator(le_validator);


certain_button = new QPushButton(tr("yes"), this);
certain_button->setFixedSize(60, 32);
certain_button->move(280 ,120);
}


在构造函数里面初始化 imin = 1; imax = 100; //初始化这2个竟然程序会出现错误: 程序已经停止
...全文
184 11 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
哈哈。。嗯哪。
renzha0013 2012-10-18
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 的回复:]

嘿,多半低级失误。

求结果~~
[/Quote] Qt creator 重新构建即可。 代码无问题。
renzha0013 2012-10-18
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 的回复:]

先删除,除源文件以外的,编译产生的其它文件。编译。
最近总是这样,代码没问题,运行就崩溃,重新编译后一切正常。
[/Quote]
嗯嗯,发现问题了,,是编译器的问题。 重新构建项目即可。 代码无问题。
renzha0013 2012-10-18
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 的回复:]

lz用的是什么开发环境
[/Quote]
是Qt Creator
moxiaofeng77 2012-10-17
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]

错误一定不是出现在这里,应该是其它地方的问题导致的,一般来说,野指针很容易造成这种现象,即真正有问题的地方和问题发生的地方相差十万八千里。

其实lz要是怀疑这块代码有问题大可不必发到网上。你完全可以建立一个新的工程,就把这段代码拷进来,看看是否还有错误。

解决问题还是要讲究一些方法的。
[/Quote]

++1
LZ自己调试一下
SilenceSu 2012-10-17
  • 打赏
  • 举报
回复


++++111
其实lz要是怀疑这块代码有问题大可不必发到网上。你完全可以建立一个新的工程,就把这段代码拷进来,看看是否还有错误。
[Quote=引用 1 楼 的回复:]

错误一定不是出现在这里,应该是其它地方的问题导致的,一般来说,野指针很容易造成这种现象,即真正有问题的地方和问题发生的地方相差十万八千里。

其实lz要是怀疑这块代码有问题大可不必发到网上。你完全可以建立一个新的工程,就把这段代码拷进来,看看是否还有错误。

解决问题还是要讲究一些方法的。
[/Quote]
xiachm 2012-10-17
  • 打赏
  • 举报
回复
错误一定不是出现在这里,应该是其它地方的问题导致的,一般来说,野指针很容易造成这种现象,即真正有问题的地方和问题发生的地方相差十万八千里。

其实lz要是怀疑这块代码有问题大可不必发到网上。你完全可以建立一个新的工程,就把这段代码拷进来,看看是否还有错误。

解决问题还是要讲究一些方法的。
  • 打赏
  • 举报
回复
lz用的是什么开发环境
jdwx 2012-10-17
  • 打赏
  • 举报
回复
先删除,除源文件以外的,编译产生的其它文件。编译。
最近总是这样,代码没问题,运行就崩溃,重新编译后一切正常。
  • 打赏
  • 举报
回复
嘿,多半低级失误。

求结果~~
polly_polly 2012-10-17
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]

错误一定不是出现在这里,应该是其它地方的问题导致的,一般来说,野指针很容易造成这种现象,即真正有问题的地方和问题发生的地方相差十万八千里。

其实lz要是怀疑这块代码有问题大可不必发到网上。你完全可以建立一个新的工程,就把这段代码拷进来,看看是否还有错误。

解决问题还是要讲究一些方法的。
[/Quote]

完全同意一楼的说法,要找出真正的原因,可以从你整个工程的入口打断点进行单步调试,看看到底哪里出问题了,如果是程序中断,可以看一下调用堆栈的内容,有很多方法可以试的

16,818

社区成员

发帖
与我相关
我的任务
社区描述
Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。
社区管理员
  • Qt
  • 亭台六七座
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧