首页| 论坛| 消息

标题:QT错误集成大全
作者:ktl123
日期:2016-11-12 16:23
内容:

本吧专业捉QT的虫子 大家都来这里把常见错贴出,感谢分享你的经验


#1 [harold00124 11-22 16:54]
寫SerialPort的時候要記得在pro檔加入QT += core gui serialport
昨天忘記寫 害我卡一整個下午找不出問題...
小弟是新手...
#2 [ktl123 12-02 18:40]
QT += multimedia //QSOund声音 没有这个QSOund函数不识别
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets// APP 不识别
QT +=widgets
QT += core gui //基本函数会提示错误
QT += multimedia//多媒体支持
CONFIG += console
CONFIG += qt
QT += printsupport//没有这个打印函数不支持
#3 [ktl123 12-02 18:49]
1 #include
2 #include
3 #include
4 #include
5 #include
6 #include
7 using namespace std;
8
9 bool setDate(int,int,int);
10 int main(int argc, char *argv[])
11 {
12 QCoreApplication a(argc, argv);
13 qDebug()
#4 [ktl123 12-02 19:06]
1) 信号和槽之间的参数传递必须是对等的,比如:空-空,int-int,QString-QString。多个参数也是一样,且顺序不能错。否则connect将被视为无效的。但有些情况也是可以的。
(2) 槽的参数是不能有默认值的,也不可以在调用的时候调用常量。
举例如下:
错误:
connect(a, SIGNAL(typeBtnClicked(int)), this, SLOT(resetDishPage(1)));
connect(a, SIGNAL(typeBtnClicked()), this, SLOT(resetDishPage(1)));
运行时会提示:找不到resetDishPage(1)这个函数。
connect(a, SIGNAL(typeBtnClicked()), this, SLOT(resetDishPage(1)));
运行时会提示:QObject::connect: Incompatible sender/receiver arguments
DInputNumPage::btnClicked() --> InputForm::doInput(QString)
但是这样写是正确的:
connect(a, SIGNAL(typeBtnClicked(int)), this, SLOT(resetDishPage()));
即,信号带参数,槽不带参数。
这样写是错误的:
connect(a, SIGNAL(typeBtnClicked(int, QString)), this, SLOT(resetDishPage(QString)));
但是这样写是正确的:
connect(a, SIGNAL(typeBtnClicked(int, QString)), this, SLOT(resetDishPage(int)));
即,槽的参数比信号的少,且是开始的几个
注2:什么是Core Dump?
Core的意思是内存, Dump的意思是扔出来, 堆出来.
开发和使用Unix程序时, 有时程序莫名其妙的down了, 却没有任何的提示(有时候会提示core dumped). 这时候可以查看一下有没有形如core.进程号的文件生成, 这个文件便是操作系统把程序down掉时的内存内容扔出来生成的, 它可以做为调试程序的参考.
#5 [ktl123 12-02 19:10]
总结系列_2(vc,opencv,Qt等错误调试,续...)
本文将总结一些在使用opencv+vs过程中碰到的error。
 1.程序编译通过,运行时出现如下错误:
  
  解决方法:
  a.可能是读取文件时出现错误,比如说读图片,视频等文件名字或路径弄错了。

  2. 编译程序通过,运行时出现如下错误:
  
解决方法:
a.可能是数据类型不对,比如说在该语句中gray_diff.at(i,j)=255;
本来gray_diff中的数据类型是unsigned char的,如果你写成了gray_diff.at< int>(i,j)=255;或者是写成其它的就会报类似的错误。

  3. 当编译通过,运行程序一段时间后出现如下提示:
  
  解决方法:
  a. 可能是读取的地址无效,比如说你去读取一副图片,但是你给的图片目录中没有该文件的话就会出现类似错误。

  4.如果自己单独写一个头文件,比如说gmm.hpp,头文件中也包含了opencv用到的系统头文件,但是在gmm.hpp中应用opencv自带的变量类型时会报错。比如说gmm.hpp    的内容为,已被main.cpp包含进去了。
  gmm.hpp内容如下图所示:
  
  编译是报错如下:
  
  则原因是没有使用opencv的命名空间,加入一句using namespace cv;即可。以后要注意了,使用了opencv的头文件后,要同时使用其命名空间,否则是会报错的。

5. 如果生成项目时,出现如下错误提示:
  
  则说明你在头文件中定义了变量,且这个头文件有被2个或2个以上的源文件包含了。因此可以得出结论,尽量不要在头文件中定义变量,如果要定义的话,就需要在前面加一个static关键字。

6.当用单步调试,变量监视器来监视Mat型变量时,查看Mat型里面的data数据(特别是其数据类型为浮点数时),有可能出现如下显示:
  
  这并不是说明这个Mat类型数据有错误,只是变量监视显示不出来而已,可能有如下2个原因:一是该变量只能显示unsigned char型的数据,其他非此类的数据显示可能有误;二是Mat型内部数据不同点对应的数据可能不同,所以也有可能显示不出来。

7. 重装系统前用的xp+opencv2.3.1+vs2010,opencv打开摄像头正常,重装系统后用的xp+opencv2.4.2+vs2010,程序没有变化,opencv运行这些程序时打开摄像失败,但是用运行opencv1.0sample中有关摄像头的exe正常。另外摄像头驱动正常, ..

<< 1 2 3 >> (1/3)

回复 发表
主题 版块