QT运行窗口中汉字显示为乱码的解决方法

网上各种使用诸如以下方法来解决的文章

QTextCodec::setCodecForLocale(QTextCodec::codecForName("UTF-8"));
或者在工具->选项->文本编辑器->行为->文件编码中进行设置
经过测试均无效
 
解决方案:
在mainwindow.cpp代码中增加如下的第四行,指定执行字符集为gpk即可
需要注意的是,如此指定依然不能在中文内容中出现如中文叹号“!”等字符,否则系统编译时会提示存在额外的换行符
本测试所用的QT版本:5.9.9
 1 #include "mainwindow.h"
 2 #include "ui_mainwindow.h"
 3 #include <QMessageBox>
 4 #pragma execution_character_set("gpk")
 5 
 6 MainWindow::MainWindow(QWidget *parent)
 7     : QMainWindow(parent)
 8     , ui(new Ui::MainWindow)
 9 {
10     ui->setupUi(this);
11 }
12 
13 MainWindow::~MainWindow()
14 {
15     delete ui;
16 }
17 
18 void MainWindow::on_pushButton_clicked()
19 {
20     QString str= ui->textEdit->toPlainText();
21     QXlsx::Document xlsx;
22     xlsx.write("A1",str);
23     if(xlsx.saveAs("OutputFile.xlsx"))
24     {
25         QMessageBox::information(this,"提示","写入成功");
26     }
27     else
28     {
29         QMessageBox::critical(this,"警告","写入失败");
30     }
31 }

 

posted @ 2024-08-01 15:15  尼古拉-卡什  阅读(851)  评论(0编辑  收藏  举报