QT新手,求教一个问题

绝版紫太狼 2013-07-17 03:19:14
我是照着书中的练习,初学,用qt creator 这个ide
刚看到qt designer设计UI
创建了按钮,也照着写了代码。
但是编译时候,提示按钮没有定义
‘okButton'was not declared in this scope
‘cancelButton'was not declared in this scope
‘lineEdit'was not declared in this scope

请教各位大神,怎么一回事。网上有看说提升…还有什么方法的,看的不懂啊。
...全文
388 19 打赏 收藏 转发到动态 举报
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
绝版紫太狼 2013-07-19
  • 打赏
  • 举报
回复
[quote=引用 17 楼 q245879 的回复:] 我已经解决了,要再次对lineEdit声明一下
绝版紫太狼 2013-07-19
  • 打赏
  • 举报
回复
[quote=引用 17 楼 q245879 的回复:] 我就是想问一下,我是用qtcreator新建的一个GUi项目工程,里面的初始.cpp .h都是自动的。 但是按照书上的创建好UI,然后在代码关联时候,就会报错,说是段错误。 然后把那些声明什么的改了,就又可以。是为什么啊?
  • 打赏
  • 举报
回复
这种问题,最好是把代码贴出来。或者是把重现的代码打个包。
_Gx 2013-07-18
  • 打赏
  • 举报
回复
引用 16 楼 super_rat 的回复:
[quote=引用 13 楼 q245879 的回复:] [quote=引用 12 楼 super_rat 的回复:] 指向了 还是错误,现在出现段错误
调试一下看哪里出错了。[/quote] 就是在QRegExp regExp("[A-Za-z][1-9][0-9]{0,2}");[/quote]

QRegExp regExp("[A-Za-z][1-9][0-9]{0,2}");
QValidator *validator = new QRegExpValidator(regx, ui->lineEdit);
ui->lineEdit->setValidator(validator);
试一试
绝版紫太狼 2013-07-18
  • 打赏
  • 举报
回复
引用 13 楼 q245879 的回复:
[quote=引用 12 楼 super_rat 的回复:] 指向了 还是错误,现在出现段错误
调试一下看哪里出错了。[/quote] 就是在QRegExp regExp("[A-Za-z][1-9][0-9]{0,2}");
菜园小火车 2013-07-18
  • 打赏
  • 举报
回复
用ui->okbutton试试
_Gx 2013-07-17
  • 打赏
  • 举报
回复
引用 12 楼 super_rat 的回复:
指向了 还是错误,现在出现段错误
调试一下看哪里出错了。
绝版紫太狼 2013-07-17
  • 打赏
  • 举报
回复
指向了 还是错误,现在出现段错误
_Gx 2013-07-17
  • 打赏
  • 举报
回复
引用 10 楼 super_rat 的回复:
[quote=引用 9 楼 q245879 的回复:] #include "gotocelldialog.h" #include "ui_gotocelldialog.h" gotocellDialog::gotocellDialog(QWidget *parent) : QDialog(parent), ui(new Ui::gotocellDialog) { ui->setupUi(this); QRegExp regExp("[A-Za-z][1-9][0-9]{0,2}"); lineEdit->setValidator(new QRegExpValidator(regExp,this)); // QObject::connect(okButton,SIGNAL(clicked()),this,SLOT(accept())); // QObject::connect(cancelButton,SIGNAL(clicked()),this,SLOT(reject())); //这里是在qt designer里设置了槽和信号 } void gotocellDialog::on_lineEdit_textChanged() { okButton->setEnabled(lineEdit->hasAcceptableInput()); //okButton,lineEdit'was not declared in this scope } gotocellDialog::~gotocellDialog() { delete ui; }
你调用这些控件的时候应该是用ui去指: ui->okButton; ui->lineEdit;
绝版紫太狼 2013-07-17
  • 打赏
  • 举报
回复
[quote=引用 9 楼 q245879 的回复:] #include "gotocelldialog.h" #include "ui_gotocelldialog.h" gotocellDialog::gotocellDialog(QWidget *parent) : QDialog(parent), ui(new Ui::gotocellDialog) { ui->setupUi(this); QRegExp regExp("[A-Za-z][1-9][0-9]{0,2}"); lineEdit->setValidator(new QRegExpValidator(regExp,this)); // QObject::connect(okButton,SIGNAL(clicked()),this,SLOT(accept())); // QObject::connect(cancelButton,SIGNAL(clicked()),this,SLOT(reject())); //这里是在qt designer里设置了槽和信号 } void gotocellDialog::on_lineEdit_textChanged() { okButton->setEnabled(lineEdit->hasAcceptableInput()); //okButton,lineEdit'was not declared in this scope } gotocellDialog::~gotocellDialog() { delete ui; }
_Gx 2013-07-17
  • 打赏
  • 举报
回复
代码贴出来看下
绝版紫太狼 2013-07-17
  • 打赏
  • 举报
回复
引用 6 楼 q245879 的回复:
[quote=引用 4 楼 super_rat 的回复:] [quote=引用 3 楼 q245879 的回复:] [quote=引用 2 楼 super_rat 的回复:] [quote=引用 1 楼 q245879 的回复:] 有添加ui_xxx.h吗?
添加进去了,貌似是自动生成的吧。[/quote] 用Qt Creator设计会自动生成。 你确定你有这些控件吗?或者你确定你的控件名字是这些?[/quote] 是的啊,才学,总共就三个控件。怎么用qt creator自动生成? 我在那个debug文件夹里有ui_XXXX.h的文件,也要添加到Pro里?[/quote] 你的代码是照着别的地方打的是么? 你的控件objectname应该没有改。你到creator那边更改控件名字就可以了。 你可以右击你的控件->改变对象名称 或者选中控件之后在右边属性那边更改即可。[/quote] 我注意了这些地方,都改过来了的/虽然是初学qt,编程基础还算有登……
绝版紫太狼 2013-07-17
  • 打赏
  • 举报
回复
引用 5 楼 jdwx1 的回复:
用QtCreator重新新建一个gui程序,一直next,打开ui编辑器,再进行设计,编译就好了。 出现这个问题,估计是程序结构的问题,先用这个自动生成的练习、对比。
我就是这样弄的啊
_Gx 2013-07-17
  • 打赏
  • 举报
回复
引用 4 楼 super_rat 的回复:
[quote=引用 3 楼 q245879 的回复:] [quote=引用 2 楼 super_rat 的回复:] [quote=引用 1 楼 q245879 的回复:] 有添加ui_xxx.h吗?
添加进去了,貌似是自动生成的吧。[/quote] 用Qt Creator设计会自动生成。 你确定你有这些控件吗?或者你确定你的控件名字是这些?[/quote] 是的啊,才学,总共就三个控件。怎么用qt creator自动生成? 我在那个debug文件夹里有ui_XXXX.h的文件,也要添加到Pro里?[/quote] 你的代码是照着别的地方打的是么? 你的控件objectname应该没有改。你到creator那边更改控件名字就可以了。 你可以右击你的控件->改变对象名称 或者选中控件之后在右边属性那边更改即可。
jdwx 2013-07-17
  • 打赏
  • 举报
回复
用QtCreator重新新建一个gui程序,一直next,打开ui编辑器,再进行设计,编译就好了。 出现这个问题,估计是程序结构的问题,先用这个自动生成的练习、对比。
绝版紫太狼 2013-07-17
  • 打赏
  • 举报
回复
引用 3 楼 q245879 的回复:
[quote=引用 2 楼 super_rat 的回复:] [quote=引用 1 楼 q245879 的回复:] 有添加ui_xxx.h吗?
添加进去了,貌似是自动生成的吧。[/quote] 用Qt Creator设计会自动生成。 你确定你有这些控件吗?或者你确定你的控件名字是这些?[/quote] 是的啊,才学,总共就三个控件。怎么用qt creator自动生成? 我在那个debug文件夹里有ui_XXXX.h的文件,也要添加到Pro里?
_Gx 2013-07-17
  • 打赏
  • 举报
回复
引用 2 楼 super_rat 的回复:
[quote=引用 1 楼 q245879 的回复:] 有添加ui_xxx.h吗?
添加进去了,貌似是自动生成的吧。[/quote] 用Qt Creator设计会自动生成。 你确定你有这些控件吗?或者你确定你的控件名字是这些?
绝版紫太狼 2013-07-17
  • 打赏
  • 举报
回复
引用 1 楼 q245879 的回复:
有添加ui_xxx.h吗?
添加进去了,貌似是自动生成的吧。
_Gx 2013-07-17
  • 打赏
  • 举报
回复
有添加ui_xxx.h吗?

16,212

社区成员

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

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