1、在Qt creator中无法使用输入法
环境Qt creator 5.1,Ubuntu10.04, ibus输入法
解决:可以通过运行以下脚本启动QT
#!/bin/sh
cd (QT的可执行文件目录)
export QT_IM_MODULE=iBus
./qtcreator
2、在ARM linux上无法显示中文
这种情况多半是字库问题引起,把wenquanyi字库拷贝到提示字库加载错误的地方,同时在控件、窗口创建完毕后执行:
QFont font;
font.setFamily(QString("wenquanyi"));
this->setFont(font);
若是在QT designer设计的界面控件不能显示中文,即在其setup之后设置为wenquanyi字体:
ui->setupUi(this);
QFont font;
font.setFamily(QString("wenquanyi"));
this->setFont(font);
在QT designer里面选择为wenquanyi会不生效。
对于父窗口设置了wenquanyi字库,子窗口是否还得这样设置才能显示中文的问题,还未进行准确验证
3、在代码中敲入的中文字符串,通过传值、传地址等方式赋予到控件上无法显示中文
这种情况可能是编码的问题,如:
在文件A
......
extern char str[]
......
char str[ ] = “中文问题真烦”;
printf(“%s\n”, str);
......
打印出乱码
而在文件B即可以显示中文
PushButton_A->settext(QString::fromLocal8Bit(str)); //也无法显示中文
PushButton_B->settext(QString(“中文中文中文”)); //可以显示中文
可能原因:
程序启动时,在main中设置了UTF-8编码(或不设置,采用默认,好像也是UTF-8)
QTextCodec::setCodecForTr(QTextCodec::codecForName("UTF-8"));
QTextCodec::setCodecForLocale(QTextCodec::codecForName("UTF-8"));
QTextCodec::setCodecForCStrings(QTextCodec::codecForName("UTF-8"));
文件B也是UTF-8编码,
文件A时GBK编码。
这样子的话,就会出现上述问题,这时可以通过如下操作解决:
打开文件B=》菜单栏“编辑”=》“选择编码”=》选中UTF-8编码,点击“按编码保存”