OK6410 解决Qt移植后触摸屏不能使用、鼠标无法移动问题

        一直在挂载下开发Qt程序,终于想要把它弄成开机自启动,折腾了一阵子,终于能开机自启动了,心里激动的不得了,试了试触摸屏,心又凉了半截。搞了两天,碰到了各种问题,还是解决了问题。不啰嗦了,直接给出解决步骤。

       我最初的问题是:启动的Qtopia可以正常用触摸屏,自己移植的Qt程序触摸屏无法使用,鼠标能正常使用,一碰屏幕鼠标就跑没了。想了一下,既然Qtopia可以使用触摸屏,那tslib绝对是没有问题的才对。于是根据网上大多数的解决办法:进入/bin/复制一份qt4脚本进行修改,将最后的三行去掉,改成自己运行的程序。我的怎么只有两行?估计是文件系统有点不一样,下图可见:


       改了以后发现问题更严重了,鼠标箭头卡在中间不能动了,触摸屏和鼠标一个都不能用,我无语了,这是什么原因?

      没办法,只能继续找度娘,找了半天,试了半天,发现没一个可靠的,还是不行&

  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
问题描述: 在QT开发中,有时会遇到在本地开发时能够正常显示中文,但在移植到其他机器上时却无法正常显示中文的问题。这是因为在不同的操作系统环境下,中文字符集的编码方式不同,导致QT无法正确识别中文字符。 解决步骤: 1.设置编码方式 在QT中,我们可以通过设置编码方式来解决中文显示问题。在程序入口处,调用QTextCodec::setCodecForLocale()函数设置编码方式为“UTF-8”,如下所示: ```c++ #include <QApplication> #include <QTextCodec> int main(int argc, char *argv[]) { QApplication a(argc, argv); QTextCodec::setCodecForLocale(QTextCodec::codecForName("UTF-8")); //设置编码方式 //... return a.exec(); } ``` 2.使用QTextCodec解码 在QT中,我们可以使用QTextCodec来进行字符编码转换。如果从网络或文件读取的数据是GBK编码的,我们可以使用QTextCodec::codecForName("GBK")获取对应的QTextCodec对象,然后使用QTextCodec::toUnicode()函数将数据转换为Unicode编码,如下所示: ```c++ QByteArray data = ...; //从网络或文件读取的数据 QTextCodec *codec = QTextCodec::codecForName("GBK"); //获取对应的QTextCodec对象 QString str = codec->toUnicode(data); //将数据转换为Unicode编码 ``` 3.使用QLabel显示中文 在QT中,我们可以使用QLabel控件来显示中文。如果我们使用setText()函数设置中文字符串,需要注意编码方式。如果字符串是GBK编码的,我们可以使用QTextCodec::codecForName("GBK")获取对应的QTextCodec对象,然后使用QTextCodec::toUnicode()函数将字符串转换为Unicode编码,如下所示: ```c++ QTextCodec *codec = QTextCodec::codecForName("GBK"); //获取对应的QTextCodec对象 QString str = codec->toUnicode("中文字符串"); //将字符串转换为Unicode编码 ui->label->setText(str); //设置中文字符串 ``` 完整代码示例: ```c++ #include <QApplication> #include <QTextCodec> #include <QLabel> int main(int argc, char *argv[]) { QApplication a(argc, argv); QTextCodec::setCodecForLocale(QTextCodec::codecForName("UTF-8")); //设置编码方式 QLabel label; //创建QLabel控件 QTextCodec *codec = QTextCodec::codecForName("GBK"); //获取对应的QTextCodec对象 QString str = codec->toUnicode("中文字符串"); //将字符串转换为Unicode编码 label.setText(str); //设置中文字符串 label.show(); //显示QLabel控件 return a.exec(); } ``` 注意事项: 1.在使用QTextCodec进行字符编码转换时,需要保证原始数据的编码方式正确。 2.在使用QLabel显示中文时,需要保证编码方式与setText()函数中的字符串编码方式一致。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值