返回列表 发帖

Qt4.6.2目前存在的问题(symbian)

本文列出Qt-4.6.2中存在的一些已知问题,方便各开发者查阅。

Contents
[hide]

    * 1 编译
    * 2 Symbian 模拟器
    * 3 手机安装
    * 4 通用问题(QtCore and QtGui)
    * 5 QtNetwork 相关问题
    * 6 QtWebkit 相关问题
    * 7 Bug 跟踪

编译

    * 无法使用GCCE编译Qt库。
    * 在RVCT中引入头文件不能使用#include <QtTest>这种形式,必须使用#include<QtTest/QtTest>这种形式。
    * 利用qmake命令产生的Makefile,需要GNU make来执行,Symbian SDKs中的make.exe能够满足需要。如果你调用了不兼容GNU Make的make.exe程序(比如,ARM RVCT 中的make.exe),那么可能无法正确使用Makefile。
    * The wrapper makefiles created by qmake may cause conflicts with raptor’s make engine, the workaround is to run sbs directly or to use a GNU make with a different exe name (e.g. mingw32-make.exe) to run the wrapper makefiles.

Symbian 模拟器

    * 不支持在模拟器中同时启动多个应用。启动第二个应用的时候会返回KErrNotSupported(-5)。
    * The Emulator (32-bit Windows application) is limited to 2GB address space. Mwccsym2 links the debug symbols into the executable creating big chunks of memory, this causes a situation where even a small chunk of linear memory is too much to fit into the memory causing application/emulator just bails out without any error note. Error is easy to spot if the executable dies before reaching main() and you have just increased epocheapsize maximum in .pro file.
    * Changing MegabytesofFreeMemory crashes S60 3rd edition FP 1 – emulator at start up.

手机安装

    * 如果手机里已有旧的版本在安装Qt.sis时可能会失败。请先删除手机中的技术预览版,然后重新安装。
    * 如果将Qt库安装在外部存储卡上,由于Symbian会对外部存储卡上的库文件做额外的检查,启动Qt应用将会变得很慢。所以Qt库只能装在手机存储器中(C:盘)。
    * 供手机安装的Qt.sis二进制代码指令集是armv6的,像N96等不支持armv6的手机无法运行Qt应用。

通用问题(QtCore and QtGui)

    * 某些widget可能会超出屏幕之外,即使你调用的是widget.showFullScreen()。
    * 长时间运行高CPU负荷的应用,可能会导致程序启动管理器进程(比如应用列表菜单)崩溃和ViewSrv应用终止。
    * QLocal和QDesktopServices在S60 3rd fp1版本中工作不正常。
    * QFileSystemModel sometimes creates duplicate nodes for files and directories if the file name and path case doesn’t match exactly the case of the file name in the file system.
    * 对于垂直和非常大的字体渲染还没有达到呈现最佳状态。
    * Qt应用帮助中的"About Qt"对话框太大并且无法滚动,因此在S60无法匹配屏幕正常显示
    * 在每一次socket连接网络的时候都会弹出IAP(因特网访问接入点)选择框。如果不想重复选择,你可以参考examples里的 FTP或Anomaly,这俩程序演示了如何使用默认连接。
    * 在鼠标压住拖动到时候,有时无法把鼠标事件发送给正确的接收者。
    * Using virtual keyboard to edit QLineEdit that has input mask only works properly if masked characters are filled in order starting from the beginning of the string.
    * Using QWidget::lower() on a top level window will put the whole application to background. This will most likely be solved in the future by introducing separate window groups for each top level window. Note that this solution may impact the contents of the task switcher, making each top level window show up as a separate task.
    * 对某些Qt Demo应用,在s60 3.x系统如n95上切换屏幕的显示方向可能需要几秒钟的时间

QtNetwork 相关问题

    * 网络应用需要networkservices能力,请在.pro文件中增加target.capability = networkservices
    * 网络例子程序在选取IAP(因特网访问接入点)并且长时等待“preshared key for WLAN”对话框情况下会导致崩溃(ViewSrv 11).
    * 网络例子程序会使用第一个IAP(因特网访问接入点)会导致某些连接问题(比如,在连接的时候MMS接入点正在工作中)

QtWebkit 相关问题

    * Webkit应用需要networkservices能力,请在.pro文件中增加target.capability = networkservices
    * 在.pro里增加target.epocheapsize 0x200000 0x2000000语句,将会为你的应用设置最小2MB,最大为32MB的堆大小。
    * 在模拟器中运行webkit应用大部分情况下需要增加内存空间,请修改%EPOCROOT%\epoc32\data \epoc.ini文件中的MegabytesOfFreeMemory选项
    * 用“-fpu vfpuv2”参数编译webkit在运行javascript代码时会导致随机崩溃(kern-exec 3)。
    * webcore.pro只能在命令行中编译,如果在Carbide中编译会导致内存耗尽错误。
    * QtWebkit在armv5中QtWebkit只能编译成release模式。编译成debug模式将会导致RVCT链接程序内存耗尽。

Bug 跟踪

    * 如果你想了解更多关于Qt-4.6.x的有关Bug报告,报告已经解决的或者尚未解决的,请访问The Bug Tracker
    * 这是一个公共的bug跟踪系统, 如果你发现有什么新的Bug,请点击“create new issue”链接进行报告link(需要是注册用户)。

相关链接: http://qt.gitorious.org/qt/pages/Qt462KnownIssues
各位帮忙把没翻译完的几句给翻译一下,谢谢

* The wrapper makefiles created by qmake may cause conflicts with raptor’s make engine, the workaround is to run sbs directly or to use a GNU make with a different exe name (e.g. mingw32-make.exe) to run the wrapper makefiles.
qmake生成的Makefile有可能与rapter的make冲突, 解决办法是直接运行sbs,或者将GUI make更名为其他名字(如mingw32-make.exe)并用此名字执行makefile
bbs和blog站点 http://www.cuteqt.com
喜欢的话就收藏+订阅吧~

TOP

* The Emulator (32-bit Windows application) is limited to 2GB address space. Mwccsym2 links the debug symbols into the executable creating big chunks of memory, this causes a situation where even a small chunk of linear memory is too much to fit into the memory causing application/emulator just bails out without any error note. Error is easy to spot if the executable dies before reaching main() and you have just increased epocheapsize maximum in .pro file.
模拟器(32位应用程序)仅限于2GB的寻址空间。Mwccsym2链接调试信息到执行档时创建大块的内存, 导致即便是小块的线性内存分配都无法成功,致使应用程序/模拟器不报任何错误即退出。 这个错误很容易诊断, 如果程序在到达main函数以前就退出, 你只需要修改.pro文件中的epocheapsize的最大值。

    * Changing MegabytesofFreeMemory crashes S60 3rd edition FP 1 – emulator at start up.
修改MegabytesofFreeMemory导致S60 3rd edition FP1模拟器在启动时崩溃
bbs和blog站点 http://www.cuteqt.com
喜欢的话就收藏+订阅吧~

TOP

* QFileSystemModel sometimes creates duplicate nodes for files and directories if the file name and path case doesn’t match exactly the case of the file name in the file system.
在文件名、路径的大小写与文件系统中的文件名不完全一致时,QFileSystemModel有时会创建重复的节点。
bbs和blog站点 http://www.cuteqt.com
喜欢的话就收藏+订阅吧~

TOP

* Using virtual keyboard to edit QLineEdit that has input mask only works properly if masked characters are filled in order starting from the beginning of the string.
使用虚拟键盘编辑带掩码的QLineEdit仅当字符按照字串的顺序从头至尾填充才能正常工作。 (这个翻译的不好, 自己都看不懂)
bbs和blog站点 http://www.cuteqt.com
喜欢的话就收藏+订阅吧~

TOP

* Using QWidget::lower() on a top level window will put the whole application to background. This will most likely be solved in the future by introducing separate window groups for each top level window. Note that this solution may impact the contents of the task switcher, making each top level window show up as a separate task.
对顶层窗体调用QWidget::lower()函数将把整个应用置于后台。 此问题将在以后解决, 比如为每个顶层窗体引入独立的窗体组。 注意该解决方案还有可能影响到任务切换程序, 因为该程序将每个顶层窗体列为一个独立的任务。
bbs和blog站点 http://www.cuteqt.com
喜欢的话就收藏+订阅吧~

TOP

好~ 不错。
http://www.cuteqt.com/blog 分享Cute之Qt体验,让我们Qt!Qt!

TOP

返回列表