我这有如下文件chi.h chi.cpp main.cpp
//********************chi.h*******************************
#ifndef FORM1_H
#define FORM1_H
#include <qvariant.h>
#include <qwidget.h>
#include <qtextcodec.h>
#include <qstring.h>
class QVBoxLayout;
class QHBoxLayout;
class QGridLayout;
class QMultiLineEdit;
class Form1 : public QWidget
{
Q_OBJECT
public:
Form1( QWidget* parent = 0, const char* name = 0, WFlags fl = 0 );
~Form1();
QMultiLineEdit* MultiLineEdit1;
QTextCodec* gbk;
QString mytr(const char*);
};
#endif // FORM1_H
//********************chi.cpp**************************
#include "chi.h"
#include <qmultilineedit.h>
#include <qlayout.h>
#include <qvariant.h>
#include <qtooltip.h>
#include <qwhatsthis.h>
#include <qstring.h>
/*
* Constructs a Form1 which is a child of 'parent', with the
* name 'name' and widget flags set to 'f'
*/
Form1::Form1( QWidget* parent, const char* name, WFlags fl )
: QWidget( parent, name, fl )
{
if ( !name )
setName( "Form1" );
resize( 240, 320 );
setMaximumSize( QSize( 240, 320 ) );
gbk=QTextCodec::codecForName("GBK");
QString caption = "鐫€搴婂彛"; //这些中文是在x11的designer输入的,输入时已经是一些乱码
setCaption( mytr( caption ) );
MultiLineEdit1 = new QMultiLineEdit( this, "MultiLineEdit1" );
MultiLineEdit1->setGeometry( QRect( 32, 40, 181, 61 ) );
MultiLineEdit1->setText( mytr( "脛茫潞脙! China n浣? ) ); //这些中文是在生成chi.cpp后加入的,使用台式机linux下的GBK输入法输入,在台式机的linux下输入时可以显示为正确的中文
}
/*
* Destroys the object and frees any allocated resources
*/
Form1::~Form1()
{
// no need to delete child widgets, Qt does it all for us
}
QString Form1::mytr(const char* chars)
{
return gbk->toUnicode(chars,strlen(chars));
}
//***************main.cpp***********************
#include "chi.h"
#include <qapplication.h>
#include <qfont.h>
int main( int argc,char **argv)
{
QApplication a (argc,argv);
Form1 b;
a.setMainWidget( &b );
QFont font1("unifont",16,50,FALSE,QFont::Unicode);
qApp->setFont(font1);
b.show();
return a.exec();
}
我用的qte是2.3.7的,好像太旧了:)
很奇怪,我用designer设计时不能输入中文,是一些乱码
为了实验观察,我在由designer生成的.ui文件转换而得到的chi.cpp文件中的MultiLineEdit1又加入了一些中文,这些中文是使用台式机linux的GBK输入法输入的
先谢谢了
[ 此贴被kangray在2006-06-29 15:56重新编辑 ]