• 13054阅读
  • 3回复

[提问]QMessageBox中文乱码问题【已解决】 [复制链接]

上一主题 下一主题
离线yzpdsg
 

只看楼主 倒序阅读 楼主  发表于: 2010-05-01
— 本帖被 XChinux 从 Qt基础编程 移动到本区(2013-04-01) —
使用如下语句:

    QMessageBox msgBox;
    msgBox.setText("中文");
    msgBox.setStyleSheet("QPushButton { background-color: rgb(255, 85, 0); color: rgb(85, 255, 0); }");
    msgBox.exec();

结果乱码了。奇怪的是我已经在main.cpp中加入    QTextCodec::setCodecForTr(QTextCodec::codecForName("gbk")); 了。这是为什么呢?

还有一个问题:如果按照QMessageBox::information(this,tr("帮助"),tr("中文"),QMessageBox::Yes);这样显示就正常了,那如何设置字体的颜色呢?


多谢了!
[ 此帖被yzpdsg在2010-05-22 08:46重新编辑 ]
离线canshe

只看该作者 1楼 发表于: 2010-05-01
大概用msgBox.setText(QString::formlocal8bit("中文"));可以解决。具体函数名可能不准确。
离线banyibanyi

只看该作者 2楼 发表于: 2010-05-01
注意函数名:setCodecForTr
就是设置tr的当然:information(this,tr("帮助"),tr("中文"),QMessageBox::Yes);这样显示就正常了

字体颜色可以用css那样的样式 例如setText("<red>haha</red>");好像是  忘了呵呵 你再查查老帖 基本一般问题都能解决
离线yzpdsg

只看该作者 3楼 发表于: 2010-05-01
引用第1楼canshe于2010-05-01 18:11发表的  :
大概用msgBox.setText(QString::formlocal8bit("中文"));可以解决。具体函数名可能不准确。



谢谢,是fromLocal8Bit()。已解决。
快速回复
限100 字节
 
上一个 下一个