Qt串口助手程序的一点理解

1.str = str.setNum(num,16);

Qt串口助手程序的一点理解

2.serialport->write(ui->send_text_window->toPlainText().toLatin1());

Latin1是ISO-8859-1的别名,因为ISO-8859-1编码范围使用了单字节内的所有空间,在支持ISO-8859-1的系统中传输和存储其他任何编码的字节流都不会被抛弃。

3.foreach语句

Qt串口助手程序的一点理解

Qt串口助手程序的一点理解

Qt串口助手程序的一点理解

循环语句,查找出可用串口,并把该串口信息赋给info

4.tr()函数

Qt串口助手程序的一点理解

QString text1 = QObject::tr(“hello”); QString text2 = QString(“hello”);

tr是用来实现国际化,如果你为这个程序提供了中文翻译包(其中hello被翻译成中文"你好"),那么text1的内容将是中文"你好";如果你为程序提供且使用日文翻译包,那么text1的内容将是日文。

tr是经过多级函数调用才实现了翻译操作,是有代价的,所以不该用的时候最好不要用。

tr("我是中文");这调用的是下面这个函数

QString QObject::tr ( const char * sourceText, const char * disambiguation = 0, int n = -1 )

与QString("我是中文")完全一样,你必须告诉tr这个窄字符串是何种编码,你不告诉它,它就用latin1,于是所谓的乱码问题就出来了。

如何告诉tr你写的这几个汉字在磁盘中保存的是何种编码呢?这正是

QTextCodec::setCodecForTr(QTextCodec::codecForName("GB2312"));

QTextCodec::setCodecForTr(QTextCodec::codecForName("UTF-8"));