qtcreator中debug后出现button was not declared
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了qtcreator中debug后出现button was not declared相关的知识,希望对你有一定的参考价值。
本人初学QT4,qt creator建立工程的时候选择默认的qt gui application,然后用qt designer 设计此工程中的ui图,完成后在qt creator中的main函数里只写入:QObject::connect(
button,SIGNAL(clicked()),&a,SLOT(quit())),debug后出现button was not declared。ps:我已经在qtdesigner里把拖拽的pushbutton改名叫做button了。为什么还出现这个情况?
我创建了俩lcd,和两个slider。改名叫lcd1,lcd2,slider1,slider2。
然后我在main函数里面如几位回答那样设一个ui,但是debug的时候就会出下这个,通不过。为什么呢?怎么改啊。谢啦
帮我看看上面这俩图,谢谢啦
参考技术A button是属于ui类的一个成员变量,在main函数里面调用它需要通过你建立的ui类的对象;比如你的ui类名是MYUI则应该这样写
MYUI *ui = new MYUI;
QObject::connect(ui->button,SIGNAL(clicked()),&a,SLOT(quit()));追问
原来是这样,那我从哪看我建立的ui类名呢?(就是你说的MYUI)建立工程的时候没记得自己设过这个类名啊,谢谢啦
追答你这个里面mainwindow就是;
你把Ui::MainWindow *ui = new Ui::MainWindow;去掉
然后把里面的ui全部改成w;
注释掉ui那行,将ui->均改为w.后编译出现这么一堆未定义。。这是为啥啊
把你的mainwindow的头文件贴过来我看看
追问你把你的和界面操作相关的初始化的东西都放到MainWindow的构造函数里面;就是下面的这些
可以不变的放到里面,然后在主函数里面吧这些东西去掉;只保留下面几句
QApplacation a(argv,argc);
MainWindow w;
w.show;
return a.exec();
因为MainWindow类就是你的处理界面的类;界面的初始化,对应的操作的槽函数在里面定义比较好;
QTcreator自动生成的界面类都是单继承ui累的;如果用多继承方式建立界面处理类;你上次的写法是没有问题的,单继承的界面控件都需要通过界面处理类(MainWindow)的私有成员变量ui来调用;
你可以看看QT界面设计的两重继承方式
QTCreator .pro 文件:根据 DEBUG / RELEASE 设置 LIBS 路径
【中文标题】QTCreator .pro 文件:根据 DEBUG / RELEASE 设置 LIBS 路径【英文标题】:QTCreator .pro file: Setting LIBS path depending on DEBUG / RELEASE 【发布时间】:2012-07-23 11:13:33 【问题描述】:作为 Qt 的新手,我正在编写一个依赖于另一个项目的小项目,该项目位于并行目录中。
在我的.pro
文件中,一些.obj
文件包含如下(有效)。但是,在创建版本时,我想使用其他项目的版本,而不是它的调试路径。我检查了Qt variables 并找到了“目标示例”。但是我没有将它应用到我的LIBS
,特别是因为构建可以同时用于debug_and_release
,我不知道如何编写LIBS
路径。
专业文件:
LIBS += -L"../../OtherApp/OtherApp-build-desktop-Qt_4_8_1_for_Desktop_-_MSVC2010__Qt_SDK__Debug/debug"
LIBS += http.obj some other obj files
“目标示例”:
build_pass:CONFIG(debug, debug|release)
unix: TARGET = $$join(TARGET,,,_debug)
else: TARGET = $$join(TARGET,,,d)
我可以写LIBS += -L"......."$$(TARGET)"......"
,特别是如果目标可能同时包含调试和发布?
[编辑 1] 我找到了解决方案:https://***.com/a/11612903/356726
【问题讨论】:
【参考方案1】:通过使用向导(包括内部库),我创建了以下“代码”。这很可能是解决方案:
win32:CONFIG(release, debug|release): LIBS += -LLIBS += -L"../../MyApp/current/MyApp-build-desktop-Qt_4_8_1_for_Desktop_-_MSVC2010__Qt_SDK__Release/release"
else:win32:CONFIG(debug, debug|release): LIBS += -L"../../MyApp/current/MyApp-build-desktop-Qt_4_8_1_for_Desktop_-_MSVC2010__Qt_SDK__Debug/debug"
【讨论】:
以上是关于qtcreator中debug后出现button was not declared的主要内容,如果未能解决你的问题,请参考以下文章
让QtCreator在调试时显示字符串 Qt调试助手 QtDebuggingHelper qtc-debugging-helper
关于QtCreator中三种不同编译版本 debugreleaseprofile 的区别
windows10环境下QtCreator中出现skipping incompatible xxx when searching for xxx 问题解决办法
在QtCreator 2.1.0 下使用opencv231库加载图片并显示
错误记录Java AWT 图形界面编程界面中出现中文乱码 ( Run/Debug Configurations 对话框 VM options 中设置 -Dfile.encoding=gbk )