当前位置:网站首页>QT serial port UI design and solution to display Chinese garbled code
QT serial port UI design and solution to display Chinese garbled code
2022-07-03 16:25:00 【Red guest white hat】
QT A serial port ui Design and solve the display of Chinese garbled code
【1】UTF-8 and GBK
*UTF-8:Unicode TransformationFormat-8bit, Allow to contain BOM, But it usually doesn't contain BOM.
Is used to solve the international character of a multi byte encoding , It uses English 8 position ( A byte ), Use of Chinese 24 by ( Three bytes ) Encoding .
UTF-8 Contains characters needed in all countries of the world , It's international code , Strong commonality .
UTF-8 Coded text can be supported in various countries UTF8 The character set is displayed on the browser .
If it is UTF8 code , In foreigners' English IE It can also show Chinese on , They don't have to download IE Chinese language support package for .
*GBK It's a national standard GB2312 On this basis, it is compatible after expansion GB2312 Standards for .
GBK The text encoding of is expressed in double bytes , That is to say, regardless of 、 English characters are represented by double bytes , In order to distinguish Chinese , Set the highest bit to 1.
GBK Contains all Chinese characters , It's the country code , Versatility is better than UTF8 Bad , however UTF8 The database occupied is more than GBD Big .
GBK yes GB2312 An extension of , In addition to compatibility GB2312 Outside , It can also display traditional Chinese , There are also Kanas in Japanese .
*GBK、GB2312 And so on UTF8 Between must pass through Unicode Code can be converted to each other : GBK、GB2312--Unicode--UTF8
UTF8--Unicode--GBK、GB2312
* In simplified Chinese windows Under the system ,ANSI Code representative GBK/GB2312 code ,ANSI Usually use 0x80~0xFF Scope 2 In bytes 1 Chinese characters .
0x00~0x7F Characters between , Is still 1 One byte stands for 1 Characters .Unicode(UTF-16) Encoding is used for all characters 2 Byte representation .
【2】SerialTool.pro

【3】mainwindow.h
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
#include<QSerialPort>// Serial header file
#include<QTextCodec>
QT_BEGIN_NAMESPACE
namespace Ui {
class MainWindow; }
QT_END_NAMESPACE
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
MainWindow(QWidget *parent = nullptr);
~MainWindow();
void InitUI();
private:
Ui::MainWindow *ui;
QTextCodec *codec;
};
#endif // MAINWINDOW_H
【4】mainwindow.cpp
#include "mainwindow.h"
#include "ui_mainwindow.h"
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
, ui(new Ui::MainWindow)
{
ui->setupUi(this);
setWindowTitle("Serial Tool");
//codec = QTextCodec::codecForName("UTF-8");
codec = QTextCodec::codecForName("GBK");//System( Simplified Chinese windows By default, the system refers to GBK code )
QTextCodec::setCodecForLocale(codec);
InitUI();// Initialize serial port
}
MainWindow::~MainWindow()
{
delete ui;
}
// Initialize control
void MainWindow::InitUI()
{
// Port name
for(int i=0;i<10;i++)
{
ui->CB_portname->addItem(QString("COM%1").arg(i));// To add text 【 Additional form 】
}
// Baud rate 【 Additional form 】
ui->CB_btl->addItem(QString("1200") ,QSerialPort::Baud1200);
ui->CB_btl->addItem(QString("2400") ,QSerialPort::Baud2400);
ui->CB_btl->addItem(QString("4800") ,QSerialPort::Baud4800);
ui->CB_btl->addItem(QString("9600") ,QSerialPort::Baud9600);
ui->CB_btl->addItem(QString("19200") ,QSerialPort::Baud19200);
ui->CB_btl->addItem(QString("115200") ,QSerialPort::Baud115200);
// Data bits
ui->CB_databit->addItem(QString("5"),QSerialPort::Data5);
ui->CB_databit->addItem(QString("6"),QSerialPort::Data6);
ui->CB_databit->addItem(QString("7"),QSerialPort::Data7);
ui->CB_databit->addItem(QString("8"),QSerialPort::Data8);
// Parity bit
ui->CB_jioubit->addItem(codec->toUnicode(" nothing "),QSerialPort::NoParity);
ui->CB_jioubit->addItem(codec->toUnicode(" p. "),QSerialPort::EvenParity);
ui->CB_jioubit->addItem(codec->toUnicode(" accidentally "),QSerialPort::OddParity);
// Stop bit
ui->CB_stopbit->addItem(QString("1"),QSerialPort::OneStop);
ui->CB_stopbit->addItem(QString("1.5"),QSerialPort::OneAndHalfStop);
ui->CB_stopbit->addItem(QString("2"),QSerialPort::TwoStop);
// flow control
ui->CB_flowctrl->addItem("None",QSerialPort::NoFlowControl);// nothing
ui->CB_flowctrl->addItem("RTS/CTS",QSerialPort::HardwareControl);// Hardware control
ui->CB_flowctrl->addItem("XON/XOFF",QSerialPort::SoftwareControl);// Software control
}
【5】mainwindow.ui

【6】 Running effect

Love YOU
边栏推荐
- "Remake Apple product UI with Android" (2) -- silky Appstore card transition animation
- 特征多项式与常系数齐次线性递推
- 深入理解 SQL 中的 Grouping Sets 语句
- Explore Netease's large-scale automated testing solutions see here see here
- Embedded development: seven reasons to avoid open source software
- First knowledge of database
- Construction practice camp - graduation summary of phase 6
- How to thicken the brush in the graphical interface
- 手机注册股票开户安全吗 开户需要钱吗
- 于文文、胡夏等明星带你玩转派对 皮皮APP点燃你的夏日
猜你喜欢

TCP congestion control details | 3 design space

uploads-labs靶场(附源码分析)(更新中)

Mixlab编辑团队招募队友啦~~
![[solved] access denied for user 'root' @ 'localhost' (using password: yes)](/img/71/1ff8ed1d773da99054310f96dca3f8.jpg)
[solved] access denied for user 'root' @ 'localhost' (using password: yes)

Break through 1million, sword finger 2million!

【LeetCode】94. Middle order traversal of binary tree

远程文件包含实操

From "zero sum game" to "positive sum game", PAAS triggered the third wave of cloud computing

ThreeJS 第二篇:顶点概念、几何体结构

Function introduction of JMeter thread group
随机推荐
Effect of ARP package on FTP dump under vxworks-6.6 system
uploads-labs靶场(附源码分析)(更新中)
Pychart error updating package list: connect timed out
Is it safe to open a stock account by mobile registration? Does it need money to open an account
NSQ源码安装运行过程
为抵制 7-Zip,列出 “三宗罪” ?网友:“第3个才是重点吧?”
Using optimistic lock and pessimistic lock in MySQL to realize distributed lock
[redis foundation] understand redis master-slave architecture, sentinel mode and cluster together (Demo detailed explanation)
App mobile terminal test [4] APK operation
Everyone in remote office works together to realize cooperative editing of materials and development of documents | community essay solicitation
Cocos Creator 2.x 自动打包(构建 + 编译)
【声明】关于检索SogK1997而找到诸多网页爬虫结果这件事
[combinatorics] summary of combinatorial identities (eleven combinatorial identities | proof methods of combinatorial identities | summation methods)*
Colab works with Google cloud disk
8个酷炫可视化图表,快速写出老板爱看的可视化分析报告
Develop team OKR in the way of "crowdfunding"
Slam learning notes - build a complete gazebo multi machine simulation slam from scratch (II)
MB10M-ASEMI整流桥MB10M
Using optimistic lock and pessimistic lock in MySQL to realize distributed lock
记一次jar包冲突解决过程