免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1442 | 回复: 0
打印 上一主题 下一主题

关于QT4交叉编译的程序在开发板上运行时,使用鼠标选择文本时出现界面冻结的解决方案 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-12-06 10:52 |只看该作者 |倒序浏览
关于QT4交叉编译的程序在开发板上运行时,使用鼠标选择文本时出现界面冻结的解决方案

    最近在学习QT4,在学习的过程中遇到过很多的问题,通过查找相关资料,在论坛中请教,一般问题都可以得到解决。这两天碰见了界面冻结的问题,在网上查资料也没有相应的解决方案,甚至连相关的资料都没有,在论坛一位大哥是帮助下,成功解决了这个问题,下面把我是方法写出来与各位共享。
    解决这个问题,一般来说有两种方法,一是本文将要提到并重点详细描述的方法;另一种是使用多线程。使用多线程我还没有尝试过,但我相信一定能够解决这个问题。下面就不罗嗦了,把现象和解决方案贴出来,以能够给遇到同样问题的朋友提供帮助。在这里首先感谢QQ群里的深圳旭日这位大哥,在此向他表示诚挚的感谢!
    首先把我的开发环境简单的介绍一下:
    操作系统:Fedora 9 (虽然是刚接触Linux,但我还是喜欢新的东西。)
    硬件:现在硬件一般都能支持
    开发板:飞凌TE2 2440II (ARM9)
    QT:qt-embedded-opensource-src-4.4.3.tar.gz
    另外说一下,我使用的Qt-Creator (我的这个博客里有)开发的界面。
   
    现象:
    在使用Qt-Creator开发出界面后,经过交叉编译,使用nfs将开发板和PC机挂载,挂载后,在minicom中输入./hello -qws(我使用的是hello),我在hello的界面上,拖放了一个DateTimer控件,当开发板通过VGA接到显示器上时,可以看到我的hello程序,当使用鼠标拖动DateTimer里的文本时,界面就像死机一样,必须重启后才可以再次移动鼠标,而在别的非文本控件上按住鼠标左键拖动时就没有这样的现象。后来我在PC机上进行本地编译这个程序,在PC机上运行,并没有这个现象。
   
    求解:
    刚开始遇见这样的情况,不知道是什么原因,在几个论坛和群里问大家,没几个遇到过这种情况的,在google和baidu里搜索也没有这样的情况,后来在一个群里,一个大哥说这是界面冻结的问题,他原来也碰到过这样的情况,修改了一个文件,可以解决;在C++ GUI QT4编程(第二版)多线程这一章也提到过这样的情况,那里是用多线程解决的。

    解决问题:
    不用多线程的方法是,修改qt-embedded-linux-opensource-src-4.4.3-arm/src/gui/painting/qpaintengine_raster.cpp文件,把这个文件中的#ifdef QT_FAST_SPANS改为#ifdef QT_FAST_SPA(我的这个文件中有多处#ifdef QT_FAST_SPANS,建议使用查找替换),保存退出。然后打开终端,进入qt-embedded-linux-opensource-src-4.4.3-arm目录,我的安装目录是:/usr/local/qt/qt-embedded-linux-opensource-src-4.4.3-arm,然后进行make sub-src,很快就make了,因为改动的很少,不需要从头再来。

    #cd /usr/local/qt/qt-embedded-linux-opensource-src-4.4.3-arm
    #make sub-src

编译完成后,在/usr/local/qt/qt-embedded-linux-opensource-src-4.4.3-arm/lib下将libQtGui.so.4.4.3拷到QtEmbedded-4.4.3-arm/lib下(我的是默认在/usr/local/Trolltech/QtEmbedded-4.4.3-arm/lib目录),替换原来的这个库文件,如果你乐意,把libQtGui.so、libQtGui.so.4、libQtGui.so.4.4、libQtGui.so.4.4.3四个文件都拷过去也可以。然后就交叉编译我的hello程序了,交叉编译OK后,挂到开发板上运行,OK,可以使用鼠标拖动选择文本了,不会出现界面冻结的现象了。
    如果你也遇到了这样的问题,按照以上的方法尝试,祝你成功!


本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u2/86665/showart_1682525.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP