2004-4-20 14:13
kurapikar
举个例子,我写一个简单的pushbutton<br />怎样让这个button上的中文内容显示出来<br /><br />我出的是乱码,哪位朋友有个类似经历的<br />帮帮,蛮尴尬的问题啊
2004-4-20 21:12
iessunxj
settext(tr("中文"))
2004-4-21 08:46
kurapikar
不行的,它不认,出来是乱码<br /><br />代码你看看:<br />#include <qapplication.h> <br />#include <qwidget.h> <br />#include <qpushbutton.h> <br />#include <qfont.h> <br />#include <qstring.h> <br /><br />class MyMainWindow :public QWidget <br />{ <br />public: <br />MyMainWindow(); <br />private: <br />QPushButton *b1; <br />}; <br /><br />MyMainWindow::MyMainWindow() <br />{ <br />//QString ch; <br /><br />b1 = new QPushButton( this,"b1" ); <br />b1->setText( tr( " 中文" ) ); <br />b1->setGeometry( 20, 20, 300, 300 ); <br /><br />b1->setFont( QFont( "Times", 18, QFont::Bold ) ); <br /><br />} <br /><br />void main( int argc, char **argv ) <br />{ <br />QApplication a( argc, argv ); <br />MyMainWindow w; <br />a.setMainWidget( &w ); <br />w.show(); <br />a.exec(); <br />} <br /><br /><br />其中b1->setText( tr( " 中文" ) ); 这句是用来显示button的内容的<br />不过出来是乱码
2004-4-21 09:07
iessunxj
在WINDOWS上应该没有问题,如果在UNIX上要看平台,选择不同的字符集登录,一般选GB231280。另外和你主程序设置的字体也有很大关系。在TRU64上主程序字体最好设置为宋体11号,在SOILARYS上最好设置为INTERFACE12号,在AIX上最好设置为细宋12号,这只是我个人的经验,具体还要自己试一下,可能操作系统的版本不一样显示的也不太一样。
2004-4-21 09:22
iessunxj
WINDOWS上修改如下:<br />MyMainWindow::MyMainWindow() <br />{ <br />//QString ch; <br /><br />b1 = new QPushButton( this,"b1" ); <br />b1->setText( tr( " 中文" ) ); <br />b1->setGeometry( 20, 20, 300, 300 ); <br /><br />//b1->setFont( QFont( "Times", 18, QFont::Bold ) ); <br /><br />} <br /><br />void main( int argc, char **argv ) <br />{ <br /> QGb18030Codec Code;<br /> QApplication a( argc, argv );<br /> a.setDefaultCodec(&Code);<br /><br />MyMainWindow w; <br />a.setMainWidget( &w ); <br />w.show(); <br />a.exec(); <br />}
2004-4-21 12:09
kurapikar
谢谢,找到解决的办法了<br /> <br />补上这两句就可以了 <br />#include <qtextcodec.h> <br />QTextCodec::setCodecForTr(QTextCodec::codecForName("GB2312")) ;
2006-3-28 12:54
randypig
使用QTextCodec类.
如果你的cpp文件是gb18030或者gb2312的话,就使用下面的:
QTextCodec* pcodec=QTextCodec::codecForName("gb18030") ; //gb2312类轼.
然后:
pcodec->toUnicode("你要显示的中文"); //这里返回一个QString,我记得是。
如果你的文件是utf8,就这样 QTextCodec* pcodec=QTextCodec::codecForName("utf8") ;
然后和上面的相同。
2008-7-23 22:09
wenjunraul
楼主我是你那样做的,但是怎么他说又错误,它的意思好象是说setCodecForTr这个不存在,能告诉我是什么原因吗??很急啊!!!谢谢!!!
2008-7-23 22:09
wenjunraul
看到后请告诉我以下很急!!!!我是初学者,谢谢!!!!!
页:
[1]
Powered by Discuz! Archiver 5.5.0
© 2001-2006 Comsenz Inc.