博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

QT4 中文乱码 解决方法

Posted on 2012-02-22 01:20  猫少侠  阅读(1986)  评论(0编辑  收藏  举报

Qt4写代码时,出现中文乱码。

在网上找了很多都不行,最后看到这里http://blog.chinaunix.net/uid-20382483-id-3030806.html

里面的方法才行!!!亲自试过的,可行!!!

我的代码如下:

 1 #include <QApplication>
2 #include <QDirModel>
3 #include <QListView>
4 #include <QTreeView>
5 #include <QTableView>
6 #include <QSplitter>
7 #include <QTextCodec>
8
9 int main (int argc, char *argv[])
10 {
11 QApplication app(argc, argv);
12
13 QTextCodec::setCodecForTr(QTextCodec::codecForName("utf8")); // 让程序支持中文(只对tr有影响,所以尽可能使用tr进行编程)
14
15 QDirModel dirModel;
16 QTreeView treeView;
17 QListView listView;
18 QTableView tableView;
19
20 // 设置以三种方式浏览文件
21 treeView.setModel(&dirModel);
22 listView.setModel(&dirModel);
23 tableView.setModel(&dirModel);
24
25 treeView.setSelectionMode(QAbstractItemView::MultiSelection);
26 listView.setSelectionModel(treeView.selectionModel()); // 设置与treeView相同的选择模式
27 tableView.setSelectionModel(treeView.selectionModel());// 设置与treeView相同的选择模式
28
29 QObject::connect(&treeView, SIGNAL(doubleClicked(QModelIndex)), &listView, SLOT(setRootIndex(QModelIndex))); // 双击tree节点时,则通过list的形式展开此选定目录下的所有文件
30 QObject::connect(&treeView, SIGNAL(doubleClicked(QModelIndex)), &tableView, SLOT(setRootIndex(QModelIndex)));
31
32 QSplitter *splitter = new QSplitter;
33 splitter->addWidget(&treeView);
34 splitter->addWidget(&listView);
35 splitter->addWidget(&tableView);
36 //splitter->setWindowTitle(txtCode->toUnicode("Model / View 的使用实例"));
37 splitter->setWindowTitle(QObject::tr("Model / View 的使用实例"));
38 splitter->show();
39
40 return app.exec();
41 }

 

注意第13行和第37行代码,这里就是使得中文不出现乱码的方法