• 6473阅读
  • 8回复

[提问]QML bug? [复制链接]

上一主题 下一主题
离线luoqiya
 
只看楼主 倒序阅读 楼主  发表于: 2013-05-22
首现承认楼主有点标题党了~
但是的确碰见了个很诡异的QML问题。
废话不多说直接上代码
main.qml文件
  1. import QtQuick 1.1
  2. import "InitDatabase.js" as Database
  3. import "AddInfo.js" as AddInfo
  4. Rectangle {
  5.     width: 360
  6.     height: 360
  7.     Text {
  8.         id:text
  9.         text: ""
  10.         anchors.centerIn: parent
  11.     }
  12.     MouseArea {
  13.         anchors.fill: parent
  14.         onClicked: {
  15.             AddInfo.addInfo()
  16.             AddInfo.loadInfo()
  17.         }
  18.     }
  19.     Component.onCompleted: {
  20.         Database.initDatabase()
  21.     }
  22. }
InitDatabase.js文件
  1. function initDatabase() {
  2.     var db = openDatabaseSync("StoreManagement", "1.0", "StorageDatabase", 100000);
  3.     db.transaction(
  4.                 function(tx){
  5.                    tx.executeSql('CREATE TABLE IF NOT EXISTS shoes(shoe_property text)');
  6.                 }
  7.                 )
  8. }
AddInfo.js文件
  1. function addInfo() {
  2.     var db = openDatabaseSync("StoreManagement", "1.0", "StorageDatabase", 100000);
  3.     db.transaction(
  4.                 function(tx){
  5.                     tx.executeSql("insert into shoes (shoe_property) values('hello world')");
  6.                 }
  7.                 )
  8. }
  9. function loadInfo() {
  10.     var db = openDatabaseSync("StoreManagement", "1.0", "StorageDatabase", 100000);
  11.     db.transaction(
  12.                 function(tx){
  13.                     var rs = tx.executeSql("select * from shoes");
  14.                     console.debug(rs.rows.length)
  15.                     var index=0;
  16.                     var tmpTxt=""
  17.                     text.text=""
  18.                     while (index < rs.rows.length) {
  19.                         var txt = rs.rows.item(index).shoe_property
  20.                         console.debug(txt)
  21.                         tmpTxt += txt + "\n"
  22.                         index++
  23.                     }
  24.                     console.debug(tmpTxt)
  25.                     text.text= tmpTxt.toString()
  26.                 }
  27.                 )
  28. }
实现的效果很简单,就是在一个界面中点击一次text文本多一行"helloworld"
当然“helloworld”在点击后会插入数据,然后再从数据库取出来(不要说楼主犯2了,这只是个测试)。
在我本机用Qt Creator中(Qt版本5.0.2 Qt Creator 2.7.0 都是opensource)一切美好,
编译release版本,制作发布包,包截图如下:
执行Test.exe,在本机一切完好(看似美好。。。)
问题来了
将发布包拷贝的其他裸机上面,同样能正常运行,但是点击界面并不会有任何显示
发布包和工程源码奉上:
但是各位看官请按照下面步骤操作
务必先执行发布包中的exe,原因是加载源码到Qt creator并且编译运行一次之后,发布包就程序就能正常执行
只要不用Qt creator编译一次工程,任何点击都不会有效果(在2台裸机上面测试过)
这个就是让我匪夷所思的地方。
初步判断的出现这个情况是因为js代码执行异常,但是在Qt creator中却没有任何问题,
在给裸机运行时,js代码我中断在AddInfo.js的openDatabaseSync这里,
怀疑是否是InitDatabase.js文件中打开数据库并没有关闭,
于是忽googleHK了一下,在HTML5标准中没有任何信息显示需要关闭数据库。
唯一发现了个帖子
http://www.developer.nokia.com/Community/Discussion/showthread.php?221276-How-to-close-database-opened-with-openDatabaseSync

各位看官有碰到这种情况么?求解答






离线luoqiya
只看该作者 1楼 发表于: 2013-05-22
代码和发布包忘记上传。。。
这里上传
没办法,上传包限制了大小一个整的20M的包传不上来,分了4个小包,看官记得都下载额
描述:源码
附件: Test.rar (17 K) 下载次数:2
描述:发布包1
附件: release.part01.rar (5120 K) 下载次数:1
描述:发布包2
附件: release.part02.rar (5120 K) 下载次数:1
描述:发布包3
附件: release.part03.rar (5120 K) 下载次数:1
描述:发布包4
附件: release.part04.rar (4638 K) 下载次数:1
在线toby520

只看该作者 2楼 发表于: 2013-05-22
http://apidocs.meego.com/1.2/qt4/qdeclarativeglobalobject.html   是不是digia没有把这些个bug给修复啊,我看的文档还是meego时代的,确实没有提到databse的close。
QtQML多多指教开发社区 http://qtclub.heilqt.com
将QtCoding进行到底
关注移动互联网,关注金融
开发跨平台客户端,服务于金融行业
专业定制界面
群号:312125701   373955953(qml控件定做)
离线luoqiya
只看该作者 3楼 发表于: 2013-05-22
回 2楼(toby520) 的帖子
不带这样的吧
第一次玩QML就这样?
离线myseemylife

只看该作者 4楼 发表于: 2013-05-22
换2.0试试呢。用到现在。好像还没遇到什么bug
蠢笨的愚钝~
离线luoqiya
只看该作者 5楼 发表于: 2013-05-22
回 4楼(myseemylife) 的帖子
你的意思是import QtQuick 2.0?
在线toby520

只看该作者 6楼 发表于: 2013-05-22
本来试过qtquick2,好像根本无法使用qml sqlite,提示openDatabaseSync is not defined 我今天特意试了下,发现qml sqlite数据插库巨慢,1000条数据要几分钟,表示对它很蛋疼
QtQML多多指教开发社区 http://qtclub.heilqt.com
将QtCoding进行到底
关注移动互联网,关注金融
开发跨平台客户端,服务于金融行业
专业定制界面
群号:312125701   373955953(qml控件定做)
离线myseemylife

只看该作者 7楼 发表于: 2013-05-22
回 6楼(toby520) 的帖子
没整过数据库相关。。。不过动画,效果还是挺爽的。
蠢笨的愚钝~
离线luoqiya
只看该作者 8楼 发表于: 2013-05-23
好吧,估计帖子又沉底了
快速回复
限100 字节
 
上一个 下一个