qt设置中文出现'QTextCodec' used in nested name specifier

g3109 2010-07-24 11:30:45
include <QApplication>
#include <QTextCodec>
#include <QWidget>
#include <QLabel>

int main(int argc, char *argv[])
{
QApplication app(argc, argv);
QTextCodec::setCodecForTr(QTextCodec::codecForName("gb18030"));//这里出现问题 了。

QWidget *pWidget = new QWidget;
QLabel label(pWidget);
label.setText(QObject::tr("同一个世界,同一个梦想"));
pWidget->show();
return app.exec();

}

...全文
952 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
a492741577 2012-07-06
  • 打赏
  • 举报
回复
增加头文件#include <QTextCodec>
feilinhe 2010-07-25
  • 打赏
  • 举报
回复
gb18030---》换成GBK呢?
谭海燕 2010-07-24
  • 打赏
  • 举报
回复
QTextCodec::setCodecForTr(QTextCodec::codecForName("gb18030"));//这里出现问题 了。

不是这么设置的哈。
而且这么设置,实际上也没啥效果。

我去翻翻我以前的代码。。
g3109 2010-07-24
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 xuehuo_0411 的回复:]
楼主问题解决了没?我也遇到了类似的问题,Run之后会出现越来越多的警告,然后Creator不能响应,以前就可以正确运行,不知道现在是怎么回事
[/Quote]
解决不了。直接用Qcreator的话就可以显示中文 。。
雪火 2010-07-24
  • 打赏
  • 举报
回复
楼主问题解决了没?我也遇到了类似的问题,Run之后会出现越来越多的警告,然后Creator不能响应,以前就可以正确运行,不知道现在是怎么回事
谭海燕 2010-07-24
  • 打赏
  • 举报
回复
首先可以肯定:

1,你的版本好像不匹配

2.对于设置中文,翻看了我以前写的程序。我用的fromLocal8Bit这个设置的中文。当然我用的是比较低的版

本qt2.x
g3109 2010-07-24
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 feiyinzilgd 的回复:]
QTextCodec::setCodecForTr(QTextCodec::codecForName("gb18030"));//这里出现问题 了。

不是这么设置的哈。
而且这么设置,实际上也没啥效果。

我去翻翻我以前的代码。。
[/Quote]翻到没。。等待你的帮助。。。
Qt Creator 多线程读取文件到程序显示 利用QT Creator多任务读取一个文档到程序里 为了防止直接读取文件里的内容太大而发生卡顿,于是多线程读取将更高效的解决这个问题。 效果图如下: 其中pro文件无需改动,默认就好,头文件h里面的内容为 #ifndef MAINWINDOW_H #define MAINWINDOW_H #include #include #include QT_BEGIN_NAMESPACE namespace Ui { class MainWindow; } QT_END_NAMESPACE class MyObj; class MyObj : public QObject { Q_OBJECT public: MyObj(); //新的线程 signals: void toLine(QString line); private slots: void doWork(); }; class MainWindow : public QMainWindow { Q_OBJECT public: MainWindow(QWidget *parent = nullptr); ~MainWindow(); private slots: void appendText(QString); //定义一个槽 private: Ui::MainWindow *ui; QThread *t; MyObj *obj; }; #endif // MAINWINDOW_H 而MAIN主文件的内容为了防止中文乱码做了如下修改: #include "mainwindow.h" #include #include int main(int argc, char *argv[]) { QApplication a(argc, argv); //设置中文字体 防止乱码 a.setFont(QFont("Microsoft Yahei", 9)); //设置中文编码 #if (QT_VERSION <= QT_VERSION_CHECK(5,0,0)) #if _MSC_VER QTextCodec *codec = QTextCodec::codecForName("GBK"); #else QTextCodec *codec = QTextCodec::codecForName("UTF-8"); #endif QTextCodec::setCodecForLocale(codec); QTextCodec::setCodecForCStrings(codec); QTextCodec::setCodecForTr(codec); #else QTextCodec *codec = QTextCodec::codecForName("UTF-8"); QTextCodec::setCodecForLocale(codec); #endif MainWindow w; w.show(); return a.exec(); } 接下来重点来了,源文件CPP里为 #include "mainwindow.h" #include "ui_mainwindow.h" #include #include #include #include #include MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent) , ui(new Ui::MainWindow) { ui->setupUi(this); t = new QThread(); //QThread obj = new MyObj(); obj->moveToThread(t); qDebug()<<"main thread:"<<QThread::currentThread(); connect(t,SIGNAL(started()), obj, SLOT(doWork())); connect(obj,SIGNAL

23,126

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧