标题:QML程序打包后部分js代码不能执行
作者:luoqiya
日期:2013-05-20 21:10
内容:
采用Qt4.8.4版本,编写了一个样例需要操作本地数据库,采用的是js方法openDatabaseSync,在Qt creator中功能完全正常,然后将release版本的exe和qml文件夹考出来,加载上Qt的很多动态库,本机也没问题,但是拷贝到别人机器上面,出现了只有一个文件的js代码可以执行,别的文件的js代码完全不起效,有谁碰到过这样情况不。发布的库上图:
#1 [toby520 05-21 09:57]
想问下楼主 是否可以把调试窗口打开,看到加载qml时候哪里报错了,那样找到问题就容易多啦,关于发布带有qml的Qt程序,只要将qml文件加载到qrc文件中,直接编译到exe里面去了,可能发布时候要把基于qml的一些组件发布出去
#2 回 1楼(toby520) 的帖子 [luoqiya 05-21 10:20]
在DEBUG模式下 js代码可以执行,而且完全没有问题,在本机上发布包也OK,就是拷贝到别人机器上执行exe时,对应的按钮不调用相应的js函数,所以我想在界面上面加个log框都打印不出来,本来是准备打包进exe的,可是这样都出现了问题就没往下做,源码以及发布包都可以奉上,在发布包里面就执行了InitDatabase里面的函数,其他js文件都没有执行。
#3 回 1楼(toby520) 的帖子 [luoqiya 05-21 10:26]
还有一个情况比较奇怪,在将源码拷贝到另一个安装Qt的机器上时,第一次编译和执行源码,也失败,而且失败刚好是需要调用的js文件中执行SQL语句的过程,但是第二次就好了,我怀疑是不是需要配置什么东西,但是google上没有任何信息。。。。
#4 [toby520 05-21 10:49]
我这边一切正常呀,几个页面切换没有问题,而且发布包也能正常运行 和开发环境的结果是一样的。我发现你的单个qml文件快超过2000行啦,这个有点。。。
#5 回 4楼(toby520) 的帖子 [luoqiya 05-21 10:58]
页面切换没有调用js文件里面的函数,所以一切正常,看上的图
在图上最下面的按钮添加属性里面输入 “颜色(红色,白色,蓝色)”,不需要引号额
你试试你那边有效果么?
按道理会把颜色字段加入到第一个listView,红色白色蓝色,会加入到第二个listView
但是我拷贝给别人是添加不上的,js里面console.debug打印不出来信息,所以在需要执行的代码里面加入了对UI的操作,才发现JS代码没有执行。
PS:代码的确没怎么优化,白天上班,晚上就3个小时,搞了一个星期,楼主原本就不会QML和JS,只不过写着玩的,发现QML挺简单。。。
你就别吐槽了。。。