.
再次遇到类似和前次MySQL程序移植到没有Qt电脑上时的出现的现象,这次是图片显示的问题。
在数据库中存有一些图片,将图片读取到界面显示,写好的exe程序到了没装Qt的机子上就无法显示图片了。
再一次没有任何错误提示..不过有了前次的经验,到Qt安装目录下面的/qt/plugins下面找,果然就发现了imageformats这样一个文件夹。
将imageformats和里面的qjpeg4.dll考到程序目录下,就可以在没装Qt的电脑上也正常的显示Jpg图片了。
.
分析一下原因,Qt安装目录下的/qt/plugins目录是默认添加到系统搜索路径中的,
而qsqlmysql4.dll和qjpeg4.dll这些文件都是在plugins目录的二级子目录下面,
所以Qt程序在搜索时候会找例如"/sqldrivers/qsqlmysql4.dll"或"/imageformats/qjpeg4.dll"这样的文件,
在需要移植程序到其他电脑上,添加这些dll文件就必须连同上一级目录一起添加,不然Qt程序就会找不到链接库文件了。
.
至于为什么当缺少这些文件时候Qt程序不报错而是导致数据库连不上或者图片不显示这样就比较费解,
然道说Qt的开发者们认为这些plugins都是不影响大局的附加功能, 所以即使缺少库也要在功能不完整的情况下继续运行程序?
.
-----------------
.
另一个今天遇到的问题是关于数据库Model/View结构中TableModel里setFilter函数的,
例如在一个名为personnel_info的表中有一项Department ID,想选出Department ID为17或18的项。