开贴整理QtEmbedded/Qtopia FAQ --- 不可不看的精华都在这里哦[转]
提问 ---- 回答(注意哦,这里都是以Qtopia2.2为蓝本的,因为我用的是这个版本... )
Qt-X11/QtEmbedded/Qtopia及其他常见包的关系?
build Qtopia时经常能看到以下的包:
qt-x11-2.3.2
qt-x11-3.3.x
qte-2.3.x
qtopia-2.x
tmake-1.3
qmake, uic, moc
...
其中Qtopia编译依赖Qte;
qt-x11-2.3只与编译一些tool有关, 如uic,moc,qvfb..Qtopia并不依赖qt-x11;
qt -x11-3.3.x用来编译qtopia desktop(qtopia与桌面同步的工具)和i18n相关的lupdate、lrelease工具, 所以如果你configure qtopia的时候没有加-no-qtopiadesktop选项或者用到了-languages参数就得准备qt-x11-3.x了; 另外在phone版本中有一个modem模拟的工具叫做phonesim, 也依赖qt-x11-3.x编译,不过多数人是用不上的, 呵呵。
tmake用于生成Makefile文件, 用在qte应用上;
qmake包含在qtopia里, 用于为Qtopia应用生成Makefile文件;
uic, moc,qvfb,qmake,tmake和designer使用的时候要注意版本,2.x, 3.x, 4.x之间是不兼容的, 但相同主版本号之间是兼容的,所以我们在build Qtopia过程中经常从qt-x11-2.3中拷贝现成的uic和moc供qte使用。
编译过程中出现一些头文件找不到, 类未定义等等,很多时候是因为误使用了系统默认搜索路径下的uic等工具造成的。大家要注意这个问题
Qtopia/QtEmbedded版本对应关系?
Qtopia1.7.0 / Qte 2.3.7
Qtopia2.1.1 / Qte 2.3.10
Qtopia2.1.2 / Qte 2.3.11
Qtopia2.2.0 / Qte 2.3.12 (包含在qtopia2.2源码包中)
Qtopia/QtEmbedded相关源码包下载地址?
Qt/Qte:
Qtopia(1.6-2.2):
tmake:
我的QtEmbedded程序中的中文字符为什么显示成方块?
两个可能的原因:
一是qte的库未编译进对中文textcodec的支持, 解决方案:修改qconfig-qpe.h, 去掉CODEC有关的宏, 重新configure和make
二 是程序中选用的字体不是中文字体(默认的字体是Helvetica,没有中文), 需要在程序中指定一个中文字体, 如qte自带的unifont(这个字体大家普遍的看法是看上去像残废), qt4版本里新加入了文泉驿的unicode字体, 可以在源码包里找到,比较漂亮, 推荐。
如何把QtEmbedded程序移植为Qtopia程序?
Qtopia里提供了简单的宏来创建主窗口、应用style等, 最主要的改变在main函数。
参考qtopia/src/applications/clock/main.cpp
--------------------------------------------------
#include "mymainwindow.h"
#include <qtopia/qpeapplication.h>
QTOPIA_ADD_APPLICATION("myappname", "MyMainWindow")
QTOPIA_MAIN
---------------------------------------------------
这一步很简单把,cp过来改改类名和binary的名字就OK了。
需要注意的是你的mainwindow的构造函数要符合(QWidget*p, const char* name, int f)的形式(三个参数)
相应的,修改pro文件。 参考qtopia/src/applications/clock/clock.pro
其中最重要的一行是 CONFIG+= qtopiaapp
这样编出来是quicklaunch插件程序(applications目录下的程序默认config是quichlaunch, 别的目录不是哦~)
要想编成独立的应用, 加上这句:CONFIG -= buildQuicklaunch
大功告成!
如何将自己的应用添加到qtopia桌面里?
首先把你的应用修改成qtopia应用程序(见上一个问题)。
然后把你的程序cp到qtopia程序默认的搜索路径中:
应用程序放到SRCDIR/qtopia/image/opt/Qtopia/bin下;(后面的SRCDIR/qtopia/image/opt/Qtopia简写为"...")
quicklaunch插件放到../plugins/application下。
假设你编译得到的quicklauncher插件叫libmybin.so, 则相应的需要在../bin下建立一个链接文件: ln -s quicklauncher mybin
另外,还需要创建一个desktop文件(找个现成的改改), 把这个desktop文件放到qtopia的
../apps/Applications下。
desktop 文件里最重要的信息是关联的执行档名称和图标文件的名称。 执行档名称和上文中的mybin对应, 图标的话desktop文件里只写了一个文件的名字,但实际上qtopia去搜索的时候会到以执行档的名字命名的子目录去寻找该icon文件, 也就是.../pics/mybin/xxx.png。
以上环境都弄好后, 你进到Applications页面里就能看见自己的应用程序了。
在qtopia1.7 版本里对图标文件的处理略有不同, 默认的图标搜索主要是两个位置,一个是内嵌图标, 也就是用qembed工具生成的inlinepics_p.h, 另外 就是pics目录下的文件。 如果在inline头文件里没有找到对应的图标数组,则会在pics目录下搜索。 其他好像差不多。
如何设置Qtopia的字体?
2.x系列版本在运行时的$HOME/Settings/下有个qpe.conf文件, 其中的[Apperance]下的FontFamily字段设置字体, FontSize设置字号。
Qtopia 和Qte程序都会在运行时的$QTDIR/lib/fonts目录里搜索字体, 所以你要用的字体也要放在这个地方。 另外还要根据需要修改该目录下的fontdir文件。这个文件是字体(FontFamily, FontSize...)与实际的字体文件的映射, 要写正确才能找到字体文件, 所以不可马虎。
为什么QtEmbedded自带的例子无法编译通过?
在编译例子的时候经常会出现这样的提示信息,无法编译:
“#make
Some of the required modules (full-config) are not available.
Skipped.”
这是怎么回事呢?
我想大家应该知道qte的库可以通过修改qconfig来增删一些特性吧, 也就是说通过定义一些宏可以去掉qte库包含的class定义,以减小qte库的大小。 所以说不同的config下编译出来的qte库多数情况下是不兼容的。
大家可以从该例子的.pro文件中获得一些信息(比如aclock这个例子),在pro文件中往往会有这么一行:
REQUIRES+=full-config
这 句话表明,这个qte应用用到的类只有在full-config才能满足。 所以如果你用的是别的config选项干脆就不让你编译。 如果你非要编译也不是不可能,把这个限制去掉重新生成Makefile就可以了,不过很可能会出现undefined reference或者找不到类之类的错误, 大家要做好心理准备......
要想成功编译qte的例子还有个方法是用-qconfig all参数configure QtEmbedded, 这样qte库包含所有的特性, 肯定什么例子都能编过去。
如何裁减QtEmbedded库?
QtEmbedded定义了一系列的features, 用
#ifndef NO_XXX
#endif
的方式把特性相关的代码包围在特定的宏里,这样如果定义了某个NO_XXX的宏,就是去掉了该特性, 从而达到减少编译的代码,进而减小libqte的大小的目的。
你 在configure qte的时候有一个-qconfig xxx参数, 这个xxx指定的是包含features宏的头文件, 比如qtopia里带的qconfig-qpe.h就是专门为qtopia量身定制的宏定义文件, 该文件里去掉了qtopia未用到的feature(如打印等)。如果configure时不指定-qconfig参数,则会提示你从qte预先定义好的 qconfig中选择一个,如small/large/full, 这三项对应不同的qconfig-xxx文件, 每个文件包含不同的feature定义。 具体的位置在:$QTEDIR/src/tools/qconfig-xxx.h
我们要裁减qte库最好是建立一个自己的qconfig-myconfig.h文件, 把自己的程序未用到的特性对应的宏定义在这个文件里。 configure qte的时候加-qconfig myconfig选项,这样就可以使用自己的feature定义文件了。
另外需要注意的一点是, feature之间有依赖关系,你disable某个特性很可能连带其他一些特性也被disable。 所以还要参看$QTEDIR/src/tools/qfeatures.h中对feature依赖关系的描述。
feature宏对应的功能参见文档:
http://doc.trolltech.com/qtopia2.0/html/features.html
Good Luck!
如何改变qvfb桌面的默认颜色(绿色)?
qte 2.x里提供的API:
QWSServer::setDesktopBackground(const QColor&);
QWSServer::setDesktopBackground(const QImage&);
qtopia core 4里提供的API:
QWSServer::setBackground(const QBrush&);
默认的颜色在源码的qwindowsystem_qws.cpp文件, QWSServer的构造函数里赋值,也可以直接去修改源码。[ 此贴被shiroki在2006-10-09 14:38重新编辑 ]
转载于:https://blog.51cto.com/axlrose/1292567
开贴整理QtEmbedded/Qtopia FAQ --- 不可不看的精华都在这里哦[转]相关推荐
- 技术这东西,不可不看,不可全看.
最近忙着玩开心,好久没来CSDN了,首页上有90后程序员的消息了,稍微感慨一下,曾几何时,自己这个80后还被70后的前辈所笑话,转眼就成了5年经验的老油条了.呵呵. 5年,个人认为经历还是有些代表性的 ...
- 保险条款精解(四)索赔——不可不看,因为您以前可能没听说过
保险条款精解(四)索赔--不可不看,因为您以前可能没听说过 ★保险案例一:一位朋友丢失爱车,已上全险,找保险公司索赔,未果,保险公司拒赔理由:到车管所查询,此车未年检. 案例分析:保险公司所做所为,十 ...
- 运筹说 第7期|重磅!学习运筹学不可不看的期刊大全!
运筹说 第7期|重磅!学习运筹学不可不看的期刊大全! 英文期刊 中文期刊 运筹学江湖中流传着数不尽的"武功秘籍" 有的人在其上留下自身所学从而名震江湖 有的人在其中醍醐灌顶从而功力 ...
- 超频技术(想超频的朋友不可不看啊)
超频技术(想超频的朋友不可不看啊) 此内容只有作者和已经回复此帖的浏览者能浏览: 一.什么是超频? 超频是使得各种各样的电脑部件运行在高于额定速度下的方法.例如,如果你购买了一颗Pentium43.2 ...
- [转]几句不可不看的经典人生语句
几句不可不看的经典人生语句 凡事都得趁早 防人之心不可无 选择有益的朋友 千万不能模仿他人 要有强烈的好奇心 对自己没好处的事要懂得装傻来拒绝去做 要常锻炼身体 要学会放松心情 要懂得照料自己 保证充 ...
- Android开源项目整理:个性化空间View篇(看遍论坛千万篇,不看此篇也枉然)
个性化View控件虽然你在多处可以找到 但是这个整理的不可以不看欧: 主要介绍不错的个性化View,包括ListView.ActionBar.Menu.ViewPager.Gallery.GridVi ...
- 周星驰经典对白 (不可不看哦)[转贴]
周星驰经典对白 (不可不看哦) 1.整蛊专家 其实我就是改变社会风气,风魔万千少女,刺激电影市道,提高年轻人内涵,玉树临风,风度翩翩的整蛊专家,我名叫古晶,英文名叫Jing Koo! 2.你应该这 ...
- 知乎上50个负能量段子,看完整个人都神清气爽
文✎Haochen Liu 哈哈哈哈哈看完整个人都神清气爽了. 01 只要是石头, 到哪里都不会发光的. 02 别减肥了, 你丑不仅是因为胖. 03 有些人感慨: "自己岁数不小了,还没有成 ...
- 最暖的10个小故事,看完心都融化了
最暖的10个小故事,看完心都融化了 1 他们一家搬了新家,隔壁的男主人是位人民警察. 他的孩子平常有点咋咋呼呼,每次放学回家,都会很用力地敲门,边敲边喊:"爸爸,快给我开门." 即 ...
最新文章
- AI对抗冠状病毒爆发的11种方式
- 《微机原理及接口技术》第04章在线测试
- 二十万字C/C++、嵌入式软开面试题全集宝典七
- python中、文件最重要的功能是( )和接收数据_170道面试题,python让你前尘毋庸
- std::deque简单使用
- eclipse+maven远程(自动)部署web项目到tomcat
- 仓库货位卡标识牌_怎样正确使用仓库货位卡?来看看这三点
- 酒店预订管理系统可行性分析
- dw如何制作图片自动切换效果_如何在DREAMWEAVER中做出图片切换效果?
- kodi 下载插件失败/无法刮削
- 【FLASH存储器系列六】SPI NOR FLASH芯片使用指导之二
- C语言指针知识点小结
- python agg函数,python pandas自定义agg函数
- 动漫学日语《夏日重现》(更新中)
- python画名字七十周年快乐用英语怎么说_一周年快乐的英语怎么说?
- Sliding Window[滑动窗口]
- windows 2000 堆管理的一点心得和体会
- 多伦多大学Self-Driving Cars自动驾驶专项课程(三)Driving Decisions and Actions
- 局部变量 全局变量 函数的嵌套
- [教程]【七大经典软件】【【图解】远离91助手和iTunes之完全解决方案】