• 4935阅读
  • 4回复

[提问]怎么显示成中文 [复制链接]

上一主题 下一主题
离线wenjunraul
 
只看楼主 倒序阅读 楼主  发表于: 2008-07-24
— 本帖被 XChinux 从 Qt基础编程 移动到本区(2013-04-01) —
#include <qapplication.h>
#include <qwidget.h>
#include <qpushbutton.h>
#include <qfont.h>
#include <qstring.h>
#include <qtextcodec.h>

class MyMainWindow :public QWidget
{
public:
    MyMainWindow();
private:
    QPushButton *b1;
};

MyMainWindow::MyMainWindow()
{
   
    b1 = new QPushButton( this,"b1" );
    b1->setText( tr( " 中文" ) );
    b1->setGeometry( 20, 20, 300, 300 );
   
    b1->setFont( QFont( "Times", 18, QFont::Bold ) );
   
}

int  main( int argc, char **argv )
{
    QApplication a( argc, argv );
    MyMainWindow w;
    a.setMainWidget( &w );
    w.show();
    return a.exec();
}
我就是想让按钮上显示出"中文",两个字但是出来是乱吗,请各位告诉我具体怎么做才能显示出来,我用的是QT-2.3.7,谢谢了!!!!!
离线guoyun_he

只看该作者 1楼 发表于: 2008-07-24
要有中文字库,好象你用的字库不是中文的.还有就是你的翻译文件.  如果汉化,在论坛里面搜索把!
离线linshihaoma

只看该作者 2楼 发表于: 2008-07-24
你应该是在windows下吧,加一句代码
int  main( int argc, char **argv )
{
    QApplication a( argc, argv );
    a.setDefaultCodec(QTextCodec::codecForName("GBK"));
    MyMainWindow w;
    a.setMainWidget( &w );
    w.show();
    return a.exec();
}
linux下一般默认都是utf8编码,只要加了tr就应该没事
离线wenjunraul
只看该作者 3楼 发表于: 2008-07-25
我是在linux下用的啊,加了tr还是不行的啊显示出来的是乱码
离线mse_miao
只看该作者 4楼 发表于: 2008-07-28
头文件加上这个
#include <qtextcodec.h>

下面加上
#define GB_UTF8(str)    (QTextCodec::codecForName("gb2312")->toUnicode(str))


下面遇到中文就  GB_UTF8("中文"); 
比如
->setText (GB_UTF8("中文")); 
快速回复
限100 字节
 
上一个 下一个