明远智睿技术论坛

标题: qt 界面在开发板上显示问题(iMX6ek200/314)? [打印本页]

作者: deanji    时间: 2016-12-7 18:37
标题: qt 界面在开发板上显示问题(iMX6ek200/314)?
我这里重开一贴(有点急)!
我按照论坛工程师给的移植qt4.8.5文档编译没问题,在开发板上运行界面时会显示,但是界面以外的区域全部变成绿色,移动鼠标或者触摸屏幕时就跟刷子刷似得,一块一块的漏出终端出来,我也终止程序,另外我在用tslib-install/bin/ts_calibrate 校准屏幕的时候只能看到左上角一个十字光标,其他光标看不到,但我继续点击屏幕还能完成屏幕校准功能,感觉界面有点自动隐藏掉了!

[attach]88[/attach]

作者: deanji    时间: 2016-12-7 18:50
我的ARM环境变量设置
  1. export TSLIB_ROOT=/home/linaro/qtdemo/tslib-install
  2. export TSLIB_TSDEVICE=/dev/input/event4
  3. export TSLIB_CALIBFILE=/etc/pointercal
  4. export TSLIB_CONFFILE=$TSLIB_ROOT/etc/ts.conf
  5. export TSLIB_PLUGINDIR=$TSLIB_ROOT/lib/ts
  6. export TSLIB_FBDEVICE=/dev/fb0
  7. export TSLIB_CONSOLEDEVICE=none
  8. export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$TSLIB_ROOT/lib
  9. export QTDIR=/home/linaro/qtdemo/qt4.8.5-arm
  10. export LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH
  11. export PATH=$QTDIR/bin:$PATH
  12. export QWS_MOUSE_PROTO=tslib:/dev/input/event1
  13. export QWS_DISPLAY=linuxfb
  14. export QT_QWS_FONTDIR=$QTDIR/lib/fonts
  15. export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$QTDIR/lib
复制代码

作者: deanji    时间: 2016-12-8 13:42
本帖最后由 deanji 于 2016-12-8 13:57 编辑

我试了一下在纯命令行运行,似乎没有这个问题,因为鼠标和触摸屏不好使,也无法验证这个问题我百度了一下:
笔者最近想在arm开发板上,开发一个应用程序,经过网上查询发现qt作为跨平台开发软件很不错,于是便选择了qt开发,笔者的qt版本是4.8.6的。由于arm的主频太低,在arm上进行开发编译,效率会大大下降,因此选择了交叉编译。那么问题就来了:
在PC上编译好arm程序后,在arm上运行,运行参数为-qws,但是笔者郁闷的发现,界面上出现了两个鼠标。一个是qt自身的鼠标,另一个是系统的鼠标。当点击移动鼠标时,系统鼠标会擦除其他界面,而qt鼠标会擦除系统桌面。
笔者经过一系列的试验,发现出现,对于移动鼠标会擦除界面的问题,根本原因是Linux下,两个界面在显存上产生了竞争。
解决方案:
方案一:关闭原Linux桌面,用命令行启动Linux,然后运行qt程序,保证Linux系统上仅存在qt一个界面程序。
方案二:在arm嵌入式Linux上安装qt开发环境,然后编译源程序,此为本地编译。
这两个种方法各有优劣,采用方案一,无法使用嵌入式桌面程序。方案二,开发效率太低。好的解决方案是两种方案结合起来,前期使用方案一开发,最后再使用方案二编译最后版本。


作者: deanji    时间: 2016-12-8 14:13
用另一个方法解决了,技术支持不给力呀!
作者: JDLYyear    时间: 2016-12-8 17:13
deanji 发表于 2016-12-8 14:13
用另一个方法解决了,技术支持不给力呀!

用的是什么方法解决的啊
作者: deanji    时间: 2016-12-9 18:54
JDLYyear 发表于 2016-12-8 17:13
用的是什么方法解决的啊

直接在arm板子上编译,不用交叉编译器
作者: 软件01    时间: 2016-12-15 15:28
deanji 发表于 2016-12-9 18:54
直接在arm板子上编译,不用交叉编译器

直接用nfs就行,把系统挂载在电脑的某个文件夹,就在电脑的那个文件夹编译,如果在串口终端运行
作者: 软件01    时间: 2016-12-15 15:28
deanji 发表于 2016-12-9 18:54
直接在arm板子上编译,不用交叉编译器

直接用nfs就行,把系统挂载在电脑的某个文件夹,就在电脑的那个文件夹编译,如果在串口终端运行




欢迎光临 明远智睿技术论坛 (http://bbs.myzr.com.cn/) Powered by Discuz! X3.2