当前位置:网站首页>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
边栏推荐
- Visual SLAM algorithms: a survey from 2010 to 2016
- [combinatorics] combinatorial identity (sum of combinatorial identity products 1 | sum of products 1 proof | sum of combinatorial identity products 2 | sum of products 2 proof)
- Caching mechanism of Hibernate / session level caching mechanism
- Extraction of the same pointcut
- Cocos Creator 2. X automatic packaging (build + compile)
- Slam learning notes - build a complete gazebo multi machine simulation slam from scratch (II)
- 利用MySQL中的乐观锁和悲观锁实现分布式锁
- PHP CI(CodeIgniter)log级别设置
- 【声明】关于检索SogK1997而找到诸多网页爬虫结果这件事
- Initial test of scikit learn Library
猜你喜欢

The mixlab editing team is recruiting teammates~~

初试scikit-learn库

0214-27100 a day with little fluctuation

The difference between calling by value and simulating calling by reference

Getting started with Message Oriented Middleware

NFT新的契机,多媒体NFT聚合平台OKALEIDO即将上线

8 cool visual charts to quickly write the visual analysis report that the boss likes to see
![SDNU_ ACM_ ICPC_ 2022_ Winter_ Practice_ 4th [individual]](/img/3b/7523eca5bbcdbba29d9b7f6e4791a5.jpg)
SDNU_ ACM_ ICPC_ 2022_ Winter_ Practice_ 4th [individual]

跟我学企业级flutter项目:简化框架demo参考

为抵制 7-Zip,列出 “三宗罪” ?网友:“第3个才是重点吧?”
随机推荐
架构实战营 - 第 6 期 毕业总结
One article takes you to understand machine learning
[redis foundation] understand redis master-slave architecture, sentinel mode and cluster together (Demo detailed explanation)
Famous blackmail software stops operation and releases decryption keys. Most hospital IOT devices have security vulnerabilities | global network security hotspot on February 14
程序猿如何快速成长
Extraction of the same pointcut
[web security] - [SQL injection] - error detection injection
Client does not support authentication protocol requested by server; consider upgrading MySQL client
How to set up SVN server on this machine
Cocos Creator 2. X automatic packaging (build + compile)
Deep understanding of grouping sets statements in SQL
"Remake Apple product UI with Android" (3) - elegant statistical chart
PHP CI (CodeIgniter) log level setting
Project -- high concurrency memory pool
Multithread 02 thread join
ASEMI整流桥UMB10F参数,UMB10F规格,UMB10F封装
Myopia: take off or match glasses? These problems must be understood clearly first
Page dynamics [2]keyframes
Record a jar package conflict resolution process
Mongodb installation and basic operation