首先明确目的是Qt Creator生成的rpm文件安装到平板电脑后
1,程序用到图片的可以正常显示图片
2,如果程序需要用到其他文件,可以将文件拷贝到平板电脑的指定文件夹中。
3,可以在桌面生成快捷方式,有图标
下面依次实现上述功能
1,程序用到图片的可以正常显示图片
在qt中如果程序用到图片,需要右击项目,选择添加文件...选项。弹出以下窗口:
选择qt->Qt资源文件,单击选择即可。
填写名称和位置。位置建议放在你的工程下的图片所在路径,如:/projectName/images/
然后下一步,完成,就添加完成了。
然后在资源文件中添加前缀
前缀默认是:/new/prefix1。为了方便改成:/ 即可
然后点击添加->添加文件,把自己需要的图片添加进来即可。
我添加了一个image.png,这个图片要在你工程目录下的images文件夹下。
最后在程序中使用图片资源时候,图片的路径就是
":/image.png"里面的冒号要注意,有了冒号代表你用的是资源文件里的资源,就与什么硬盘上的路径等无关了。
这样在meego下运行时候,程序就有图片了。
2,如果程序需要用到其他文件,可以将文件拷贝到平板电脑的指定文件夹中。
这个是最重要的一个方面,实现方法是修改工程的.pro文件。这个文件怎么编写我没深入研究,只是粗略的懂了一点。
如上述Hello.pro文件内容:
QT += core gui
TARGET = Hello
TEMPLATE = app
target.path=/usr/local/bin
INSTALLS=target
SOURCES += main.cpp\
dialog.cpp
HEADERS += dialog.h
FORMS += dialog.ui
RESOURCES += \
Images/resouces.qrc
比较容易看懂,最后一段是咱们添加了资源文件后qt自动添加进去的。
这里重要的是INSTALLS选项。
INSTALLS=后面的target代表的是咱们编写程序的可执行文件。放在了meego系统的/usr/local/bin这个文件夹中了。模仿这个我们可以这样编写,来达到拷贝文件进入meego系统中的目的。
target.path=/usr/local/bin
name1.files=1234.txt
name1.path=/usr/share/1234/
INSTALLS=target name1
将Hello.pro修改添加两行代码,然后在 INSTALLS=后面加上咱们自己写的那个名字name1就能将Hello项目文件夹下的1234.txt文件拷贝到Meego系统的/usr/share/1234/文件夹中,没有1234文件夹会自动创建。
这样就可以使生成的rpm文件带着1234.txt这个文件,并且在meego中安装的时候将1234.txt文件安装到/usr/share/1234/文件夹下。
3,可以在桌面生成快捷方式,有图标
有了第二条的基础,这个功能就很好实现了。
首先找一个图标放入项目目录下,然后拷贝到meego的一个文件夹下。这样图标就进入meego系统中了。
然后自己写一个快捷方式,放入meego的桌面那个文件夹/usr/share/applications中,桌面快捷方式就解决了。
图标最好用png格式的吧。
然后说一下快捷方式文件的编写:
新建一个desktop格式的文件,如hello.desktop。然后这样编写
[Desktop Entry]
Name=Hello
Exec=/usr/local/bin/Hello
Icon=/usr/share/icons/hello.png
Type=Application
Terminal=false
StartupNotify=true
Name就是在桌面显示的名称
Exec为可执行文件位置
Icon为图标的位置,你拷贝到了哪里就写哪里
后面不用改动。
.pro文件修改为:
config.files = 1234.txt
config.path = /usr/share/hello/
icon.files = hello.png
icon.path = /usr/share/icons/
desk.files = hello.desktop
desk.path = /usr/share/applications/
INSTALLS += target config icon desk
最后在....
/Hello-build-meego/rrpmbuild中生成的rpm文件就是打包好的程序。如果不是使用qt creator直接连接平板电脑调试的话,可以将rpm文件拷贝到平板电脑中。
然后执行
rpm -ivh --force hello-0.0.1-1.i586.rpm
至此程序就安装成功了,去桌面看看你的程序已经在那里了!