QT中遇到的坑

问题1:

问题
对于QString类型的字符串,toInt()是一个好用的函数,它能实现字符串到数字直接的转化。
但是toInt()是要求转化的数字字符串是2个数以上,所以无法通过toInt()去转化。
解决方法
第一种方法,调用**toFloat()**函数,先转为float类型,再转为int类型。
第二种方法,先转化为QChar类型,在转为int类型

QString s = "1";

int n = s.toInt(); //错误
int n = s.toFloat(); //方法1
int n = s.at(0).toLatin1(); //方法2 

问题2:

问题
使用QSerialPort类与下位机通讯时,向下位机连续发送多次数据后,出现下位机不响应。
原因
QT的串口,是先缓存到本地,再一起发送
解决方法
https://blog.csdn.net/navyxh/article/details/107485579

问题3

问题

D:\Qt\Pro\ImageControl\mainwindow.cpp:326: error: invalid use of member (did you forget the '&' ?)
         height = ui->lineEdit_height->text().toInt();
           ^
D:\Qt\Pro\ImageControl\mainwindow.cpp:56: error: cannot convert 'QWidget::width' from type 'int (QWidget:)() const' to type 'int'
         SaveImage(width, image_height);
                    ^

原因
width和height 为内置变量,重复定义导致冲突.

问题4

问题
error: ‘xxx’ does not name a type.
原因
两个头文件.h文件相互引用,导致其中一个头文件的类型无定义
解决方法
仅cpp里引用可以避免

你可能感兴趣的:(Qt编程,qt)