精华内容
下载资源
问答
  • QT 安装

    万次阅读 2017-12-20 10:54:09
    http://download.qt.io/archive/qt/第二步:软件安装安装教程:http://blog.csdn.net/liang19890820/article/details/53931813安装调试器: http://shitou7630.blog.163.com/blog/static/3269953620154...

    Qt 按装说明

    第一步:下载所需软件
    第二步:软件安装
    安装调试器:

    附录
    【1】对于Qt官网http://www.qt.io/download/想下载Qt,速度很慢,在这里记录下在Qt官网看到的镜像下载地址:http://blog.csdn.net/friendan/article/details/44873347
    对于基于vs开发的Qt插件下载地址:http://download.qt.io/

    【2】如果想弄明白qt在windows上的搭建,请参照:                                http://blog.csdn.net/libaineu2004/article/details/17363165

    【3】找百度

    展开全文
  • QT安装

    万次阅读 2011-11-20 20:02:46
     总结起来网上流行的VS2008+QT安装说明有以下几个问题需要解释清楚:  1,首先明确需要下载什么版本的QT。网上流行的安装说明只是针对过去旧版本的QT,还有要求下载VS2008 SP1补丁的等等。很乱,对于刚接触Qt...
     
    

         (一)工欲善其事,必先利其器,废话不多讲。

          总结起来网上流行的VS2008+QT安装说明有以下几个问题需要解释清楚:
         1,首先明确需要下载什么版本的QT。网上流行的安装说明只是针对过去旧版本的QT,还有要求下载VS2008 SP1补丁的等等。很乱,对于刚接触Qt开发者会造成不必要的困扰,安装个开发环境真的需要那么繁琐和劳神吗
         2,对于环境变量的配置,诸如path,QTDIR 和WindowsSdkDir等等。实际上都是旧版本的Qt,新版本的Qt已经不需要设置了。
         3,真的必须要configure 和nmake QT吗?对于漫长的编译过程和七七八八的编译错误?我们完全没有不必要折腾了,这里我们下载已经编译好的QT版本就够了,估计QT版本4.6以下需要这样做。     

         (二)对于以上的问题,我是按照网上说法大费周折无果,实际新版本的Qt安装起来非常简单。

          第一步:安装VS2008,我这里安装的是中文版的VS2008并且也没有安装VS2008 SP1,对于VS2008的安装过程这里省略了。

          第二步:安装Qt,访问Qt官方网站http://qt.nokia.com/downloads-cn下载2个软件:

          1,下载VS2008编译好的QT4.7版本:http://get.qt.nokia.com/qt/source/qt-win-opensource-4.7.0-vs2008.exe
          提示:minGW版本不用下,他是minGW工具编译下的QT库。QTSDK-qt-sdk-win-opensource-2010.05.exe 也不用下载,它是用QT独立进行开发下的完整软件安装包,安装过程与一般软件相同,点击下一步就行了。

          2,下载VS2008的Qt插件:http://get.qt.nokia.com/vsaddin/qt-vs-addin-1.1.7.exe
          提示:这是个针对VS(VS2005、VS2008、VS2010)各个版本都适用的QT插件,插件安装过程也是一样,点击下一步就行了。

          3,对于VS和QT的安装顺序,没有严格的要求,并没有谁先谁后,这里我是之前已经安装好了VS2008中文版的。

         (三)安装好VS2008和QT相关软件之后,测试安装是否成功?

          第一步:启动VS2008,会发现VS2008的菜单栏出现Qt这个菜单

         

          第二步:单击VS2008的Qt菜单

         

          第三步:打开Qt Option可以看到Qt的Version已经被自动识别好(并非像老版本需要手动去设置) 

         第四步:打开VS2008,新建一个Qt项目

     

    第五步:编译并运行MyApp项目,这里先不用(Qt的UI设计器,下面章节再进行介绍)设计,默认编译运行就行

    生成的项目目录结构图:

    运行成功截图如下:

    总结:虽然在软件开发中,建议老版本的Qt稳定些,还有最好用英文版的VS2008,主要考虑稳定性,不过这里考虑到编译和设置旧版本的Qt实在繁琐耗时,并且弄了半天还是编译不通过,只好用新版本的Qt,这里还算顺利,没有出现什么错误,希望给新手一点帮助。

     

    转自:http://www.cnblogs.com/zwq194/archive/2011/02/19/1958713.html

    展开全文
  • qt安装

    千次阅读 2009-12-24 13:02:00
    Qt是Trolltech公司的一个产品。Trolltech是挪威的一家软件公司,主要开发两种产品:一种是跨平台应用程序界面框架;另外一种就是提供给做嵌入式Linux开发的应用程序平台,能够应用到PDA和各种移动设备上。Qt和 ...

    Qt是Trolltech公司的一个产品。Trolltech是挪威的一家软件公司,主要开发两种产品:一种是跨平台应用程序界面框架;另外一种就是提供给做嵌入式Linux开发的应用程序平台,能够应用到PDA和各种移动设备上。Qt和 Qtopia分别是其中具有代表性的两个。(2004-05-05 10:52:14)
    --------------------------------------------------------------------------------
    By lanf, 出处:http://tech.ccidnet.com/pub/article/c310_a71173_p1.html
    作者:胡利民 本文选自:开放系统世界
      Qt是Trolltech公司的一个产品。Trolltech是挪威的一家软件公司,主要开发两种产品:一种是跨平台应用程序界面框架;另外一种就是提供给做嵌入式Linux开发的应用程序平台,能够应用到PDA和各种移动设备上。Qt和Qtopia分别是其中具有代表性的两个。
    Qt是一个多平台的C++图形用户界面应用程序框架,它能给用户提供精美的图形用户界面所需要的所有元素,而且它是基于一种面向对象的思想,所以用户对其对象的扩展是相当容易的,并且它还支持真正的组件编程。
    Qt是Linux桌面环境KDE的基础。笔者认为,可以说Qt与Windows下的Mfc的实质是一样的,所以Qt最大的优点在于其跨平台性,可以支持现有的多种操作系统平台,主要有:
    ◆ MS/Windows 95、Windows 98、WindowsNT 4.0、Windows 2000、Windows XP;
    ◆ Unix/X11 Linux、Sun Solaris、HP-UX、Compaq True64Unix、IBM AIX、SGI IRIX和很多其它X11平台;
    ◆ Macintoshi Mac OSX;
    ◆ Embedded—带FramBuffer的Linux平台。
    下面简单介绍一下Qt/Embedded和Qtopia在Linux上的安装和使用,还有在开发过程中可能碰到的一些问题。
    Qt 和Qtopia的安装
    如果需要安装一个带FramBuffer的Qtopia平台,需要有以下软件(所列举软件以笔者使用的为例):
    ◆ Qtopia 1.6.0;
    ◆ Tmake 1.11;
    ◆ Qt/Embedded 2.3.4(Qtopia 1.6.0是基于该开发平台上开发的);
    ◆ Qt/Embedded 2.3.2 for X11;
    ◆ Qt 3.1.2 for X11。
    在Trolltech公司的网站上可以下载该公司所提供的Qt/Embedded的免费版本。
    Qtopia平台安装分为以下几个步骤:
    1. 解包Qtopia
    在Linux命令模式下运行以下命令:
    tar xfz qtopia-source-1.6.0 (解包)
    cd qtopia-source-1.6.0
    export QPEDIR=$PWD (设置环境变量)
    cd..
    2. 安装Tmake
    在Linux命令模式下运行以下命令:
    tar xfz tmake-1.11.tar.gz
    export TMAKEDIR=$PWD/tmake-1.11
    export TMAKEPATH=$TMAKEDIR/lib/qws/linux-x86-g++
    export PATH=$TMAKEDIR/bin:$PATH
    3. 安装Qt/Embedded2.3.4
    在Linux命令模式下运行以下命令:
    tar xfz qt-embedded-2.3.4-commercial.tar.gz
    cd qt-2.3.4
    export QTDIR=$PWD
    export QTEDIR=$QTDIR
    export PATH=$QTDIR/bin:$PATH
    export LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH
    cp $QPEDIR/src/qt/qconfig-qpe.h src/tools/
    . /configure -qconfig qpe -qvfb -depths 4,8,16,32
    make sub-src
    cd ..
    也可以在configure的参数中添加-system-jpeg和gif,使Qtopia平台能支持jpeg、gif格式的图形。
    4. 安装Qt/X11 2.3.2
    在Linux命令模式下运行以下命令:
    tar xfz qt-x11-2.3.2-commercial.tar.gz
    cd qt-2.3.2
    export QTDIR=$PWD
    export PATH=$QTDIR/bin:$PATH
    export LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH
    . /configure -no-opengl
    make
    make -C tools/qvfb
    mv tools/qvfb/qvfb bin
    cp bin/uic $QTEDIR/bin
    cd ..
    根据开发者本身的开发环境,也可以在configure的参数中添加别的参数,比如-no-opengl或-no-xfs,可以键入./configure -help来获得一些帮助信息。
    5. 安装Qt/X11 3.1.2
    在Linux命令模式下运行以下命令:
    tar xfz qt-x11-commercial-3.1.x.tar.gz
    cd qt-x11-commercial-3.1.x
    export QTDIR=$PWD
    export QT3DIR=$QTDIR
    export PATH=$QTDIR/bin:$PATH
    export LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH
    ./configure -thread
    make
    cd ..
    6. 安装Qtopia

    在Linux命令模式下运行以下命令:
    cd qtopia-source-1.6.x
    export QTDIR=$QTEDIR
    export QPEDIR=$PWD
    export PATH=$QPEDIR/bin:$PATH
    cd src
    ./configure
    make
    cd ../..
    7. 安装Qtopia桌面
    cd qtopia-source-1.6.x/src
    export QTDIR=$QT3DIR
    ./configure -qtopiadesktop
    make
    mv qtopiadesktop/bin/qtopiadesktop ../bin
    cd ..
    Qt和Qt Designer的使用
    根据上面的步骤安装完成了Qt/Embedded和Qtopia之后,就可以运行这些程序了。
    运行Qt的虚拟仿真窗口:在Linux的图形模式下运行命令qvfb&;Qtopia只是一个用Qt/Embedded开发的程序,运行Qtopia,在图形模式下运行命令:
    export QTDIR=$QTEDIR,
    qpe &;
    这样Qtopia的程序就运行在QVFB上,即Qt的虚拟仿真窗口。
    Qt/Embedded是针对嵌入式Linux而开发的一种开发工具,Qt封装了一些常用的类,而且这些类的名字都以Q字开头命名,如QString、QDialog等。这里主要介绍一下如何利用Qt Designer来设计组件,并生成相应的代码。
    在Qt中,把组件分为复合体、原始体和配件。而在Qt中,组件是由一些抽象类、复杂的组件类、管理组件几何特性的类等组成。
    Qt中有三个主要的基类:QObject、Qapplication和QWidget。
    在Qt 中编程,利用Signal和Slot进行对象之间的通信是Qt的主要特征。它与Windows中的消息机制非常类似,但是Signal和Slot机制真正实现了一种消息的封装。当对象的状态改变时,发出Signal,通知所有的Slot接受Signal,尽管它不知道哪些函数是Slot,Slot一开始也不知道哪些Signal可以接收。Signal和Slot之间不是一一对应的关系,一个Signal可以发给多个Slot, Slot也可以接收多个Signal。Slot除了可以接收Signal以外,与其它的成员函数没有区别。这种机制比使用回调函数要灵活,但是会减慢程序的运行速度。不过在现在高速CPU的面前,这种损失是无足轻重的,而且它还能保证程序的简明性和灵活性,非常便利。
    在Qt的组件中,不仅定义了常用的成员变量和成员函数,还定义了所有与该组件相关的Signal和Slot。
    要将组件组合起来,最简单的方法就是使用Qt Designer。首先要启动Qt Designer,在Linux命令模式下,键入以下命令(假设Qt安装在/usr/local下):
    cd qt-2.3.2/bin
    ./designer
    这样就可以启动一个与Windows下的Delphi相类似的如图1的界面。
    然后新建一个QFrame,将自己需要的组件直接拖拉到这个Frame中,相信很多人都有过这样的经历,此处就不再详细描述了。完成之后存盘时,会将这个新的组件保存为一个扩展名为.ui的文件。假设所存的文件名为test.ui,用vi test.ui来查看这个文件,发现这是一个用xml语言写的一个文本。下面用这个test.ui生成相应的test.h和test.cpp。同样还是在这个目录下,可以看到一个uic的工具,这个是Qt专门用来将ui文件生成.h和.cpp文件的,在终端模式下键入以下命令:
    ./uic -o test.h test.ui
    ./uic -o test.h -i test.cpp test.ui
    此时就能看到生成了相应test.h和test.cpp,这是一个类。当然这只是一些表面的东西,还需要在这些代码中添加相应的Signal和Slot,完成所需要的操作。值得注意的是,相应版本生成的ui最好用相应版本的uic来生成代码。如果用Qt 3.1.2的Designer生成的ui,用Qt 2.3.2的uic来生成代码,生成的代码都会是一些空函数。
    在一般的开发过程中,首先通过这个ui生成的一个类,在Qt中通常叫做 Base,如上面的例子,叫做testBase;然后再新建一个类,来继承这个Base。通常叫做实现类Impl,如testImpl。在这个实现类里面定义所需要的成员函数、Signal和Slot,因为ui可能是经常需要改动的。如果这样做,每次只需要在Designer中修改ui,而不用去理会这些成员函数、Signal和Slot了。

    编译一个Qt程序必然需要Makefile,在Qt中提供了一个专门生成Makefile的工具,就是tmake。用tmake需要根据编写的程序写一个.pro文件。.pro文件非常简单,有固定的格式,下面是一个例子:
    TEMPLATE = app
    CONFIG = qtopia warn_on release
    MOC_DIR =tmp
    OBJECTS_DIR =tmp
    HEADERS =fcrs.h/
    structs.h /
    globalfunc.h /
    globalvars.h /
    testimpl.h
    SOURCES = main.cpp /
    globalfunc.cpp/
    globalvars.cpp /
    testimpl.cpp
    INTERFACES = test.ui /
    TARGET = fcrs
    生成这个.pro文件之后,在终端中键入下面的命令:
    tmake -o Makefile test.pro
    就自动生成了一个Makefile,使用这个Makefile编译所编写的程序就可以了。
    Qt/Embedded开发环境建立的过程
    -------------------------------------------------------------------------------
    Qt/Embedded开发环境建立的过程:
    (这些软件可以免费从trolltech的WEB或FTP服务器上下载)
    ◆ tmake 1.11 或更高版本; (生成Qt/Embedded应用工程的Makefile文件)
    ◆ Qt/Embedded 2.3.7 (Qt/Embedded 安装包)
    ◆ Qt 2.3.2 for X11; (Qt的X11版的安装包, 它将产生x11开发环境所需要的两个工具)
    1、安装tmake
    在Linux 命令模式下运行以下命令:
    tar xfz tmake-1.11.tar.gz
    export TMAKEDIR=$PWD/tmake-1.11
    export TMAKEPATH=$TMAKEDIR/lib/qws/linux-x86-g++
    export PATH=$TMAKEDIR/bin:$PATH
    2. 安装Qt/Embedded 2.3.7
    在Linux 命令模式下运行以下命令:
    tar xfz qt-embedded-2.3.7.tar.gz
    cd qt-2.3.7
    export QTDIR=$PWD
    export QTEDIR=$QTDIR
    export PATH=$QTDIR/bin:$PATH
    export LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH
    ./configure -qconfig -qvfb -depths 4,8,16,32
    make sub-src
    cd ..
    上述命令 ./configure -qconfig -qvfb -depths 4,8,16,32 指定Qt 嵌入式开发包生
    成虚拟缓冲帧工具qvfb,并支持4,8,16,32 位的显示颜色深度。另外我们也可以在
    configure 的参数中添加-system-jpeg 和gif,使Qt/Embedded 平台能支持jpeg、gif
    格式的图形。
    上述命令 make sub-src 指定按精简方式编译开发包,也就是说有些Qt 类未被编
    译。Qt 嵌入式开发包有5 种编译范围的选项,使用这些选项,可控制Qt 生成的库文件的大
    小,但是您的应用所使用到的一些Qt 类将可能因此在Qt 的库中找不到链接。编译选项的具
    体用法可运行./configure -help 命令查看。
    3. 安装Qt/X11 2.3.2
    在Linux 命令模式下运行以下命令:
    tar xfz qt-x11-2.3.2.tar.gz
    cd qt-2.3.2
    export QTDIR=$PWD
    export PATH=$QTDIR/bin:$PATH
    export LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH
    ./configure -no-opengl
    make
    make -C tools/qvfb
    mv tools/qvfb/qvfb bin
    cp bin/uic $QTEDIR/bin
    cd ..
    根据开发者本身的开发环境,也可以在configure 的参数中添加别的参数,比如
    -no-opengl 或-no-xfs,可以键入./configure -help 来获得一些帮助信息。
    如果Qt/Embedded 的应用是在UNIX 平台下开发的话,那么它就可以在开发的机器
    上以一个独立的控制台或者虚拟缓冲帧的方式来运行,对于后者来说,其实是有一个X11
    的应用程序虚拟了一个缓冲帧。通过指定显示设备的宽度,高度和颜色深度,虚拟出来
    的缓冲帧将和物理的显示设备在每个像素上保持一致。这样每次调试应用时开发人员就
    不用总是刷新嵌入式设备的FLASH 存储空间,从而加速了应用的编译、链接和运行周期。
    运行Qt 的虚拟缓冲帧工具的方法是:在Linux 的图形模式下运行命令:
    qvfb (回车)
    当Qt 嵌入式的应用程序要把显示结果输出到虚拟缓冲帧时,我们在命令行运行这
    个程序时,在程序名后加上-qws 的选项。例如: $> hello -qws
    一,QT/E的安装。
    在本机中安装了包括QT4.0.1(WINDOWS版本)以及QT/E2。3。7(LINUX版本)。
    QT/E我安装在我的虚拟机中。因为QT/E2.3.7的版本问题,其适宜在REDHAT9。0版本(或更低版本)下安装,否则安装不成功。
    QT/E安装过程复杂,具体细节可以参考下面这篇文章。《Qt/Embedded开发环境建立的过程》
    此文在网上可搜索到。

    本机下虚拟机中QT/E安装路径为:/home/wangxl/QTE/qt-2.3.7
    QT/X11安装路径为:/home/wangxl/QTE/qt-2.3.2
    Tmake安装路径为:/home/wangxl/QTE/Tmake-1.8

    QT/E下载地址为:ftp://ftp.rediris.es/mirror/Qt/source/
    Tmake下载地址为:ftp://ftp.trolltech.com/freebies/tmake/
    二.QT与QT/E以及QT3与QT4之间的区别
    相对来说QT与QT/E的语法一样,所不同之处在库类大小或者库类函数大小不同而已。QT/E相对于QT来说,不具有少数类或者少数函数的支持。具体QT/E是否包含某个类或者包含某个类中的函数,我的方法是在QT/E安装目录下的include文件夹中去查找。
    QT3和QT4有很多不同点,主要不同也是在于库类以及支持函数有所变化,比如,有些QT3中的函数,在QT4中被其他函数名所代替,因此很多QT4程序在QT3环境下无法执行。QT/E2.3.7与QT3基本相同,除了我前面提到的QT与QT/E的差别。
    三.QT/E编译与执行。
    1.在QT/E编译与执行前要先设置TMAKE与QT/E LIB环境,具体方法如下:
    [root@localhost tmake-1.8]# export TMAKEDIR=$PWD
    [root@localhost tmake-1.8]# export TMAKEPATH=$TMAKEDIR/lib/qws/linux-x86-g++
    [root@localhost tmake-1.8]# export PATH=$TMAKEDIR/bin:$PATH
    [root@localhost qt-2.3.7]# export QTDIR=$PWD
    [root@localhost qt-2.3.7]#export QTEDIR=$QTDIR
    [root@localhost qt-2.3.7]#export PATH=$QTDIR/bin:$PATH
    [root@localhost qt-2.3.7]#export LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH
    2.如果你是用DESIGNER工具设计的界面(后面有讲),则要将*.ui文件转换成*.h文件和*.cpp文件。转换方法如下:
    uic –o test.h test.ui
    uic –o test.cpp –i test.h test.ui

    3.编写一个*.pro文件(用来生成Makefile文件用),该文件格式比较固定。
    如test.pro文件基本格式如下(以test.cpp ,test.h main.cpp为例子):
    EMPLATE = app
    CONFIG += qt warn_on release
    HEADERS = test.h
    SOURCES = test.cpp /
    main.cpp
    TARGET = hello
    DEPENDPATH=/home/wangxl/QTE/qt-2.3.7/include
    REQUIRES=

    4.生成Makefile文件
    方法为:tmake –o Makefile test.pro
    5 编译生成可执行文件
    make

    6 打开QVFB
    进入安装QT/X11所在目录, 在BIN目录下执行程序qvfb。
    有时候需要修改qvfb执行时的deptb参数才能够执行QT/E程序。可以直接在QVFB打开窗口的Configure彩单项中选择,也可以用如下命令执行QVFB。
    ./qvfb –width ** -height ** -depth **
    7.执行QT/E程序
    如 。/TEST
    在QVFB程序打开的窗口中将出现TEST程序的显示。

    四.Qt/e与QT/X11
    安装QT/E的同时还需要安装QT/X11与Tmake,Tmake 是用来帮助生成Makefile文件的。安装QT/X11主要是向QT/E提供designer工具和qvfb工具的。
    Designer可以用来设计图形界面,最后生成.ui文件,可通过UIC命令转换为相应的C++文件。
    QVFB模拟帧缓冲,提供QT/E程序的显示平台。
    五.QT/E 程序ARM 板上执行
    在我虚拟机上可以执行的QT/E程序不能在ARM板上执行,需要对QT/E进行重新编译,并需要设置响对于ARM板系统的编译环境,具体方法可以参考我另外的一文《QT/E开发记录》
    六.QT/E支持中文显示问题
    QT/E需要字体转换才能显示中文。具体方法可以参考我另外的一文《QT/E开发记录》
    但是由于缺少UNICODE的QPF文件的字体,中文字大小不均匀问题尚没解决。
    七 QT/E的一些参考资料:
    http://www.qtcn.org/bbs/index.php中文论坛
    http://www.qiliang.net/qt/(关于QT3的类,以及类函数可以在这寻找)
    提供QT3编程最好书籍的电子版本《C++ GUI Programming with QT 3》(本机)
    关于QT4可以参考QT ASSISTNAT(本机中),另外QT ASSISTNAT中也可以查找QT3的类及库等。
    设置Qtopia的build环境
    1、环境变量
    在目标系统上build Qtopia必须设定必要的环境变量,如QTDIR,如果依赖多个版本的Qt,则需要用环境变量指向用到的库配置。
    一种方法是将环境变量的设定写入文件,通过运行source命令应用文件的内容。
    举例说明:
    Linux/bash下建立环境变量设定文件qtopia.sh, 内容如下:
    export QPEDIR=/opt/Qtopia
    export QTDIR=/opt/Qtopia
    export PATH=$QTDIR/bin:$PATH
    export TMAKEPATH=/opt/Qtopia/tmake/lib/qws/linux-generic-g++
    export LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH
    需要时运行 source qtopia.sh即可应用以上环境变量。
    另外也可以通过在.bashrc文件中设定别名来应用这些环境变量。 假设环境变量设置文件存放在home目录的bin下, 则可在.bashrc中加入:
    alias qtopia='source ~/bin/qtopia.sh'
    2、创建自定义的配置文件
    整个Qtopia系统在build过程中需要三个独立的配置系统:
    1) Qt/Embedded 配置文件
    2) tmake - 用于build Qtopia 1.x和一些第三方软件
    3) qmake - 用于build Qtopia 2及以上版本
    在build Qtopia以前,先要完成以上三项的配置。
    下面是创建一个“myarm”配置的例子:
    cp -r $TMAKEDIR/lib/qws/linux-arm-g++ $TMAKEDIR/lib/qws/linux-myarm-g++
    cp -r $QTEDIR/configs/linux-arm-g++-shared $QTEDIR/configs/linux-myarm-g++-shared
    cp -r $QPEDIR/mkspecs/qws/linux-arm-g++ $QPEDIR/mkspecs/qws/linux-myarm-g++
    Qt/Embedded
    编辑$QTEDIR/configs/linux-myarm-g++-shared, 修改其中的utilities和flags成适合系统的内容, 如:
    可能需要修改SYSCONF_CXX, SYSCONF_CC 和SYSCONF_LINK,指定正确的编译器. 可能需要增加编译选项-DMYARM,在代码中增加宏#ifdef MYARM(用以增加设备相关的代码)
    tmake
    编辑$TMAKEDIR/lib/qws/linux-myarm-g++/tmake.conf,修改用到的utilites和flags:
    可能需要修改TMAKE_CC, TMAKE_CXX 和TMAKE_LINK
    可能需要增加-DMYARM选项
    qmake
    修改$QPEDIR/mkspecs/qws/linux-myarm-g++/qmake.conf:

    QMAKE_CC, QMAKE_CXX 和QMAKE_LINK
    -DMYARM
    注意:qmake.conf的最后一行必须是:
    exists($$(QPEDIR)/src/config.pri):include($$(QPEDIR)/src/config.pri)
    可用于目录名的字符

    正则表达式字符

    Qtopia 1.9.x和Qtopia 2.0.0 - 2.1.0对字符有以下的要求:

    Qtopia build系统访问到的任何目录都不能包含正则表达式字符
    任何能被QRegExp识别的特殊字符和字符序列都可能引起问题
    '.'字符只匹配自身
    不要将正则表达式字符用于目录名,包括(但不仅限于): + . ? * / () [] ^ $ {}
    注:Qtopia 2.1.0和2.1.1及以上版本可以通过应用patch解除以上的限制

    空格

    Qtopia build系统不支持目录名中包含空格。
    必须保证:
    build系统访问到的目录不包含空格
    访问目录的各层上级目录也不包含空格
    Qtopia的依赖和必要条件

    简介
    为了使Qtopia正确运行, 必须满足以下的必要条件:
    安装适当的编译/交叉编译工具
    Qt/Embedded-2.3.11
    Linux kernel提供共享内存、mmap和socket支持
    Linux支持frame buffer
    Linux支持OSS声音或支持与OSS兼容的ALSA声音。 进一步的信息参考 The Qtopia A/V & Appearance FAQ
    还需要以下的库:
    Video4Linux
    zlib
    libuuid(aka luuid)
    libjpeg
    xorg 或X11
    注:Freetype不是必须的但建议支持 http://freetype.sourceforge.net/index2.html支持的编译器和交叉编译器

    gcc-2.95.2
    gcc 3.2.4
    gcc-3.3.0, gcc-3.3.3, gcc-3.3.4
    gcc-3.4.1
    声音

    Qtopia需要/dev/dsp可写,并支持以下的ioctl操作:
    SNDCTL_DSP_SETFRAGMENT - Qtopia将这个值设置为0x4000c.
    SNDCTL_DSP_SETFM - Qtopia设置为AFMT_S16_LE
    SNDCTL_DSP_STEREO - Qtopia 设置为 1/true.
    SNDCTL_DSP_SPEED - Qtopia设置为44100.
    SNDCTL_DSP_GETOSPACE
    Qtopia 还需要/dev/dsp可以以阻塞方式和非阻塞方式打开。 以上的设定是Qtopia需要的设定,但可以容许少许的偏差,但如果不设定成Qtopia需要的值则不能保证音频能平滑播放。假如您的设备只支持22500的播放速率,则在调用SNDCTL_DSP_SPEED时要报告此速率,以免造成音频质量的缺损。不过,如果系统不支持GETOSPACE,非阻塞写入或 SNDCTL_DSP_SET_FRAGMENT, 几乎可以肯定必然会损失音频质量。
    Video4Linux
    Camera应用程序需要支持Video4Linux v1的内核, Qtopia没有提供该支持。
    请参考官方的 Video for Linux 资源站点,参看API的详细内容。
    zlib
    zlib可以从 http://www.gzip.org/zlib/下载
    libuuid(aka luuid)
    Qtopia不提供uuid支持。 这个库可以从 http://e2fsprogs.sourceforge.net/站点下载
    另外, 如果你有SuSE Linux的发行版, e2fsprogs-devel这个包可以提供uuid支持; 在Debian中对应的包是uuid-dev. 这个库应该放在标准路经下/usr/lib/libuuid.so
    请用包管理工具来查看该包是否已经安装:
    rpm -qa | grep e2fsprogs
    如果尚未安装,请从安装盘或镜像站安装这个包。
    需要注意的是,如果没有安装e2fsprogs-devel,在链接时会发生下面的错误:
    /usr/lib/gcc-lib/i586-suse-Linux/3.3.3/../../../../i586-suse-linux/bin/ld:
    cannot find -luuid
    如果安装了该库仍遇到上述错误,则检查Qtopia的configure脚本的-L和-R参数, 以确定脚本包含了库的实际路径。 关于交叉编译的信息可参考 System Integrator's Guide.
    libjpeg
    Qtopia不提供jpeg库。 Qtopia需要Qt/Embedded配置为支持jpeg。
    libjpeg库可从 http://www.ijg.org/下载
    此外,如果你有SuSE发行版, libjpeg这个包可提供该库。这个库应该安装在标准路经/usr/lib/libjpeg.so
    检查libjpeg包是否已经安装:

    rpm -qa | grep libjpeg

    如果未安装,请从安装盘或镜像站安装。

    关于libjpeg交叉编译的信息, 可参考System Integrator's Guide.
    xorg或X11
    开发包括有从以下站点下载:

    http://www.xfree86.org/相关讨论
    决定开始Qtopia需要的步骤, 参考: Getting started
    将Qtopia集成到特定设备上的重点步骤, 参考: System Integrator's guide
    Qtopia的FAQs,参看: Qtopia index page
    系统是完全安装RedHat9.0(里面带QT3.1),板子是X-Hyper250B的,Toolchain用的是开发板带的hybus-arm-linux-R1.1
    交叉编译所用到的文件:
    qt-embedded-2.3.10-free.tar.gz
    qt-x11-2.3.2.tar.gz
    qtopia-free-source-2.1.1.tar.gz
    tmake-1.13.tar.gz
    e2fsprogs-1.35.tar.gz
    主机x86的编译步骤:
    tar xfz qt-embedded-2.3.10-free.tar.gz(解压后qt-2.3.10改名为qt-2.3.10-host)
    export QTEDIR=$PWD/qt-2.3.10-host
    tar xfz qt-x11-2.3.2.tar.gz(解压后qt-2.3.2)
    export QT2DIR=$PWD/qt-2.3.2
    tar xfz qtopia-free-source-2.1.1.tar.gz(解压后qtopia-free-2.1.1改名为qtopia-2.1.1-host)
    export QPEDIR=$PWD/qtopia-2.1.1-host
    tar xfz tmake-1.13.tar.gz(解压后tmake-1.13)
    export TMAKEDIR=$PWD/tmake-1.13
    export TMAKEPATH=$PWD/tmake-1.13/lib/qws/linux-x86-g++
    export PATH=$TMAKEDIR/bin:$PATH
    cd qt-2.3.2
    export QTDIR=$QT2DIR
    export PATH=$QTDIR/bin:$PATH
    export LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH
    ./configure -no-xft
    make
    make -C tools/qvfb
    cd ..
    cd qt-2.3.10-host
    export QTDIR=$PWD
    export PATH=$QTDIR/bin:$PATH
    export LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH
    mkdir bin (因为解压后的qt-2.3.10没有bin文件夹)
    cp $QT2DIR/bin/uic bin
    cp $QT2DIR/tools/qvfb/qvfb bin
    cp $QPEDIR/src/qt/qconfig-qpe.h src/tools/
    ./configure -qconfig qpe -qvfb -thread -system-jpeg -gif -depths 4,8,16,32
    make
    cd ..
    tar xzf e2fsprogs-1.35.tar.gz
    cd e2fsprogs-1.35
    ./configure -enable-elf-shlibs
    make install lib/uuid/
    注:这是编译x86的libuuid库
    cd ..
    cd qtopia-2.1.1-host
    export PATH=$QPEDIR/bin:$PATH
    export LD_LIBRARY_PATH=$QPEDIR/lib:$LD_LIBRARY_PATH
    ./configure
    make
    编译例子:
    $qmake -project ==>>我都是这样创建.pro文件的
    $tmake -o Makefile hello.pro
    $make
    $qvfb &
    $./hello -qws 或者$qpe
    还没怎么仔细研究过。
    目标机arm-linux的编译步骤:
    tar xfz qt-embedded-2.3.10-free.tar.gz(解压后qt-2.3.10改名为qt-2.3.10-target)
    export QTEDIR=$PWD/qt-2.3.10-target
    tar xfz qt-x11-2.3.2.tar.gz
    export QT2DIR=$PWD/qt-2.3.2
    tar xfz qtopia-free-source-2.1.1.tar.gz(解压后qtopia-free-2.1.1改名为qtopia-2.1.1-target)
    export QPEDIR=$PWD/qtopia-2.1.1-target
    tar xfz tmake-1.13.tar.gz
    export TMAKEDIR=$PWD/tmake-1.13
    export TMAKEPATH=$PWD/tmake-1.13/lib/qws/linux-arm-g++
    export PATH=$TMAKEDIR/bin:$PATH
    cd qt-2.3.2
    export QTDIR=$QT2DIR
    export PATH=$QTDIR/bin:$PATH
    export LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH
    ./configure -no-xft
    make
    make -C tools/qvfb
    cd ..
    cd qt-2.3.10-target
    export QTDIR=$PWD
    export PATH=$QTDIR/bin:$PATH
    export LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH
    mkdir bin
    cp $QT2DIR/bin/uic bin
    cp $QT2DIR/tools/qvfb/qvfb bin
    cp $QPEDIR/src/qt/qconfig-qpe.h src/tools/
    ./configure -xplatform linux-arm-g++ -qconfig qpe -qvfb -thread -system-jpeg -gif -depths 4,8,16,32
    make
    cd ..
    注:这里需要arm版本的libjpeg.so.62,hybus-arm-linux-R1.1里面包含这个库;如没有可以上网下载。
    tar xzf e2fsprogs-1.35.tar.gz
    cd e2fsprogs-1.35
    ./configure -host=arm-linux -with-cc=arm-linux-gcc -with-linker=arm-linux-ld -enable-elf-shlibs -prefix=/usr/local/hybus-arm-linux-R1.1/arm-linux
    make install lib/uuid/ ===>>>这步安装到hybus-arm-linux-R1.1/lib上的libuuid.so.1.2版本不对,
    要cp lib/libuuid.so.1.2 ../hybus-arm-linux-R1.1/lib
    注:这步是交叉编译arm的libuuid库,配置详情见./configure --help
    (还要多谢 http://panjet.wleda.com/?p=20这里面的大哥呀,好不容易才在网上找到的)
    cd ..

    cd qtopia-2.1.1-host
    export PATH=$QPEDIR/bin:$PATH
    export LD_LIBRARY_PATH=$QPEDIR/lib:$LD_LIBRARY_PATH
    cp src/libraries/qtopia/custom-linux-ipaq-g++.cpp src/libraries/qtopia/custom-linux-arm-g++.cpp
    cp src/libraries/qtopia/custom-linux-ipaq-g++.h src/libraries/qtopia/custom-linux-arm-g++.h
    ./configure -xplatform linux-arm-g++
    make
    注:这里需要libstdc++.so和libgcc_s.so库
    develop环境下qt中文化程序设计
    原文出处:Linux公社
    原文作者:yfy001
    kdevelop是一款在linux平台下可以同windows环境下的vc相媲美的集成开发环境,qt则是一款支持包括windows和linux平台
    的GUI库,可以说它是linux下的MFC.在显示上,qt使用Unicode作为内部编码,可以支持多种编码.如何使用qt进行国际化编程
    在网上可以找到很多资料的,但都是针对较早版本的qt进行介绍的.qt3.0.5中对这些作了些改动,这些方法就相应的要做些改动.
    而且在kdevelop中开发qt应用程序,将会事半功倍.我的开发环境为redhat8.0(需安装kde开发工具包).
    首先在linux中打开kdevelop集成开发环境,用它的应用程序向导新建一个qt的SDI的应用程序框架.这个同windows下vc很类似.它
    将会为你自动生成版本号,作者,e-mail等信息的单文档对话框的应用程序框架.我们首先对它自动生成的程序进行汉化(qt1是
    我的项目名称).
    1.汉化自动生成的程序
    添加翻译文件
    在"项目"菜单中选择"添加新的翻译文件",语言选择"zh_CN.Gb2312".将会创建一个zh_CN.GB2312字符编码的翻译文件.扩展名
    为".ts".在qt3.0.5环境下,打开"*.ts"翻译文件的工具是linguist.你可以在"工具"菜单中选择"QT
    linguist"来打开,在linguist菜单中选择"file"->"open"打开所要翻译的翻译文件.此时可以在linguist窗口中的source text中
    的文本就是你所要翻译的文本,选择所要翻译的文本,在下方有一个类似一页纸一样的地方,在translate下输入翻译后的文本.
    所示.
    翻译完这些文件后,编译运行,在我们的程序里并不能显示中文,还是英文,我们还需要做的就是用lrelease命令将翻译后的文件转换
    成".qm"文件才可以使用.在控制台下进入你用kdevelop所生成的应用程序目录.
    >lrelease Makefile.am
    qt3.0.5用这个两个程序取代了以前版本的findtr和msg2qm命令.在kdevelop集成环境中打开main.cpp主函数,
    ......
    QApplication a(argc, argv);
    a.setFont(QFont("helvetica", 10));
    QTranslator tor( 0 );
    tor.load( QString("qt1.") + QTextCodec::locale(), "." );
    // tor.load( QString("qt1.zh_CN.GB2312"), "." );
    a.installTranslator( &tor );
    /* uncomment the following line, if you want a Windows 95
    look*/
    // a.setStyle(WindowsStyle);

    Qt1App *qt1=new Qt1App();
    //Form1 *qt1=new Form1();
    a.setMainWidget(qt1);
    ......
    此处:
    tor.load( QString("qt1.") + QTextCodec::locale(), "." );
    是根据客户环境的locale来载入当前目录下相应的翻译文件的.redhat中文环境默认的locale为gb18030,
    此处要么把翻译文件名由qt1.zh_CN.GB2312.qm改为qt1.zh_CN.GB18030.qm,要么将这句改为
    tor.load( QString("qt1.zh_CN.GB2312"), "." );
    不过为了国际化编程的需要,建议采用第一种方法.更改后编译运行,你会发现你的程序已经是中文界面的了.

    2.汉化自己的对话框
    大多数情况下我们都需要自己来设计对话框,qt为我们提供了非常好的对话框编辑器QtDesigner,可以很方便的设计我们的对话框,qt
    的信号和槽等,关于QtDesigner的使用,限于篇幅,不再赘述.以前面的程序为基础.在kdevelop中选择"文件"->"新建",选择Qt
    Designer文件(*.ui).在文件名一栏中填写"mydialog",最后点击确定按钮,即会启动QtDesigner,此处只拖了一个Label,写了一
    些英文字符.对话框的name属性为Form1.将对话框mydialog.ui保存.
    在控制台下进入你用kdevelop所生成的应用程序目录.
    >lupdate Makefile.am
    同样用"QT
    linguist"来翻译qt1.zh_CN.GB2312.tr文件.此时linguist的context中会多出Form1的选项,这里面就是我们新建的对话框要翻译的
    选项.依据前面的方法进行汉化.
    >lrelease Makefile.am
    生成qt1.zh_CN.GB2312.qm文件.
    编译将会生成mydialog.cpp mydialog.h mydialog.moc文件.然后将main.cpp中的
    Qt1App *qt1=new Qt1App();改为
    Form1 *qt1=new Form1();
    并将"mydialog.h" #include
    进去.依据前面的方法更改tor.load中加载的翻译文件.编译运行,你的对话框也是中文的了.

    3.其它的一些说明
    由于qt返回的是Unicode编码,譬如你在LineEdit中直接输入中文,返回的就是??,qt中可以直接使用QTextCodec来转换字符串的编码.
    QString string;
    string=LineEdit1->text(); //取得LineEdit1返回的文字
    QTextCodec *codec=QTextCodec::codecForName("GBK");
    //转换编码
    QCString
    chinese_string=codec->fromUnicode(string);//用QCString来存储返回的多字节编码
    当然,你在头文件中就必需加入
    #include <qtextcodec.h>
    #include <qstring.h>
    #include <qcstring.h>

    4.QTextStream对中文的支持
    QTextCodec* codec = QTextCodec::codecForName("GBK"); /* 当前编码为"GBK" */
    QTextStream mystream(&file);
    mystream.setCodec(codec);

    5. QCString&QString
    QCString中不以unicode编码
    QString以unicode为编码.
    qt内部使用unicode为编码,所以如果要在qt的部件如multilineedit中显示中文,则需要将非unicode的字符转换成unicode字符.
    QCString locallyEncoded = "中国人不是东亚病夫"; // text to convert
    QTextCodec *codec = QTextCodec::codecForName("GBK"); // get the codec for GBK
    QString unicodeString = codec->toUnicode( locallyEncoded );

    http://www-128.ibm.com/developerworks/cn/l...oolkit/qt/i18n/国际化编程
    内容:
    1. Qt 的文本显示
    2. Qt 的文本输入
    3. Qt 的打印
    对本文的评价
    订阅:
    developerWorks 时事通讯
    于明俭
    2002 年 1 月 09 日
    本篇讨论 Qt 库对国际化的支持,将介绍 Qt 对文本显示,输入和打印的支持,和如何使用Qt 开发国际化的软件。
    Qt 目前的版本(2.2.4)对国际化的支持已经相当完善。 在文本显示上,Qt 使用了Unicode 作为内部编码,可以同时支持多种编码。 为 Qt 增加一种编码的支持也比较方便,只要 增加该编码和Unicode的转换编码便可以了。 Qt 目前支持ISO标准编码ISO 8859-1, ISO 8859-2,ISO 8859-3,ISO 8859-4,ISO 8859-5,ISO 8859-7,ISO 8859-9,和 ISO 8859-15(对于阿拉伯语和希伯来语的支持正在开发之中),中文GBK/Big5,日文 eucJP/JIS/ShiftJIS,韩文eucKR,俄文KOI8-R。 当然也可以直接使用UTF8编码。
    Qt 使用了自己定义的Locale机制,在编码支持和信息文件(Message File)的翻译上弥补了目前Unix上所普遍采用Locale和gettext的不足之处。 Qt 的这种机制可以使 Qt 的同一组件(QWidget)上同时显示不同编码的文本。 比如,Qt 的标签上可以同时使用中文简体 和中文繁体文本。
    在文本输入上,Qt 采用了XIM(X Input Method)标准协议,可以直接使用XIM输入服务器。 由于目前的绝大多数输入服务器都是针对单一语言的,所以在 Qt 的标准输入组件( QLineEdit,QMultiLineEdit)中的输入受到单一编码的限制,Qt 还不支持动态切换编码输入的支持,这是它的不足之处。
    1. Qt 的文本显示
    像普通的国际化过程一样,Qt 使用了类似GNU gettext一样的函数 QObject::tr(),它 用于从Qt的信息文件 .qm 中取出信息,这些信息是经过 Qt 的工具处理的。 Qt在处理 编码时还使用了 QTranslator 类,可用于指定整个应用软件的的信息文件。
    使用 Qt 编写国际化的程序,最好不要在程序中直接使用特殊编码的文本。 比如要 编写一中文界面的 Qt 程序,应该在程序中使用英文,程序编写完成后,把文本提取 出来翻译。 这样,程序还可以根据Locale的不同,支持多种语言。 下面介绍如何在 Qt 程序中标注字符串,如何提取并翻译文本。
    下面是一段使用了 QObject::tr()的代码,它建立了一个弹出菜单,菜单项是"Quit", 它被放置在菜单条上,在菜单条上显示的是标签"File"。
    QPopupMenu* popup;
    popup = new QPopupMenu( this );
    popup->insertItem( tr("&Quit"),qApp,SLOT(quit()) );
    menubar->insertItem( tr("&File"),popup );
    对于绝大多数情况,可以用上述方法处理。不过有时在定义某些变量中使用的字符 串,不能使用上述方法,但是为了让Qt提取并翻译该字符串,必须用某种方法标志出来。Qt 定义了 QT_TR_NOOP() 和 QT_TRANSLATE_NOOP() 来标志它们。前者用于单个字符串,后者用于多个字符串。比如,
    static const char* strings[] = {
    QT_TR_NOOP( "Hello" ),
    QT_TR_NOOP( "World" )
    };
    有时需要使用printf/sprintf之类的函数动态生成字符串,比如,
    QStings s;
    s.sprintf( "Button %d",i );
    but->setText( s );
    对这种使用方式的国际化是使用 arg() 函数。
    QString s = tr( "Button %1" ).arg(i);
    but->setText( s );
    提取上述信息的方法是使用 Qt 提供的工具 findtr 命令:
    findtr [filename].cpp > i18n.po
    它类似于GNU的 xgettext,上述文件的提取信息文件内包含,

    ....
    "Content-Type: text/plain; charset=iso-8859-1/n"

    #: i18n.cpp:34
    msgid "ExampleWidget::&File"
    msgstr ""
    ...
    接下来是文本翻译过程。 在Qt中翻译信息文件时应该注意以下事项: (1) 提取的信息文件的编码是iso-8859-1,在翻译成某种语言(编码)时应该 注意改动它的 字符集,比如对中文GB2312和Big5编码,应该是, "Content-Type: text/plain; charset=gb2312/n"或者"Content-Type: text/plain; charset=big5/n"。 (2) 提取的信息有一个范围,比如上面的文件指定的范围是 ExampleWidget,在翻译 前应该把它去掉,变成 msgid "::&File"。(3) 被翻译的字符串可能含有加速键符号,如 "&File"中的"F",如果翻译成中文最好保留该信息,它可以翻译成 "文件(&F)"。

    对于翻译后的文件(比如上面的翻译文件存为 i18n_gb.po),必须使用 Qt 提供的 工具 msg2qm 把它转换为 .qm 文件才能使用,
    > msg2qm i18n_gb.po i18n_gb.qm
    它类似于GNU的 msgfmt 命令。翻译后的文件可以用Qt程序直接调用。
    QTranslator *translator = new QTranslator(0);
    translator->load("i18n_gb.qm",".");
    qApp->installTranslator(translator);
    此外,Qt 还提供了类似于 msgmerge 的工具 mergetr,它用于把新提取的信息 文件和已经翻译过的信息文件融合起来,在此不再赘述。

    在 Qt 中也可以直接使用 QTextCodec 来转换字符串的编码,这为在Qt下开发纯 中文软件带来了便利条件,不过这种方法不符和国际化/本地化的习惯,
    char *string = "中文和English混和字符串!"
    QTextCodec* gbk_codec = QTextCodec::codecByName("GBK");
    QString gbk_string = codec->toUnicode(string);
    QLabel *label = new QLabel(gbk_string);
    如果使程序只支持一种编码,也可以直接把整个应用程序的编码设置为GBK编码, 然后在字符串之前 加tr(QObject::tr),
    qApp->setDefaultCodec( QTextCodec::codecForName("GBK") );
    QLabel *label = new QLabel( tr("中文标签") );
    如果使Qt根据Locale的环境变量取得字符集,可以使用 QString::fromLocal8Bit(str)。

    本节的例子请参见 qt-i18n-example.tar.gz

    2. Qt 的文本输入
    在输入方面,Qt 的输入条(QLineEdit)和编辑区(QMultiLineEdit)都支持 XIM,只要配合相应的输入服务器,便可以输入中文/日文/韩文。目前有许多支持XIM的软件,比如中文: Chinput/xcin/rfinput/q9,日文: kinput2/skkinput,韩文: ami/hanIM。

    Qt程序的缺省输入风格是OverTheSpot风格,它也支持 OffTheSpot风格和 Root风格。 用户可以在起动程序时在命令行指定输入风格,比如对程序app,
    ./app -inputstyle overthespot #缺省风格,光标跟随
    ./app -inputstyle offthespot
    ./app -inputstyle root
    经过 MiziLinux 补丁的Qt-2.2.0 支持 OnTheSpot 输入风格,并且把它作为 缺省的输 入风格。请参见 http://www.mizi.com/ko/kde/doc/onthespot/onthespot.html。中的任何一个 Widget 都可以接受输入,只要它可以有键盘聚焦(Keyboard Focus)。所以对特殊 Widget 的输入处理只需要截获键盘输入,获取从XIM服务器 来的字符串。 对于OverTheSport风格的支持,刷新XIM输入服务器的位置即可。
    3. Qt 的打印
    在打印方面,XWindow下的 Qt 生成PostScript并使用lpr打印。 它含有QPrinter类, 可以方便地支持输出页面的控制。 对于中文打印,必须修正PostScript文件的输出部分。
    TOpia中文化
    一:字符集介绍
    我国已经颁布了多种中文信息编码标准,常用的有:GB2312-1980、GB12345、GB13000(GBK)以及最新标准GB18030,其中 GB13000是对GB2312的扩展,又常被成为GBK,GB18030向下兼容GB2312和GBK,中文WINDOW98、中文WIN2000操作系统采用的中文字符集是GB2312。
    GB2312字库仅覆盖双字节部分,存储位置索引是编码中每字节的第8bit置0得来的,如A1A1编码汉字在字库中的索引是2121,而非A1A1。以下是它的编码规则:
    单字节:00~7F
    双字节:A1~F7 A1~FE
    GBK的编码规则是:
    单字节:00~7F

    双字节:81~FE 40~7E
    80~FE
    GB18030是最新的汉字编码标准,其编码为一、二、四变长编码:
    单字节:00~7F
    双字节:81~FE 40~7E
    80~FE
    四字节:81~FE 30~39 81~FE 30~39
    Unicode编码采用等长编码,二个字节表示一个字符编码,对于ASCII码也采用双字节来表示,unicode使用二维空间来描述编码空间,平面分为256行、256列,对应于编码的高低字节。
    二:Qt 国际化编程
    在文本显示上,Qt 使用了Unicode 作为内部编码,为了程序的国际化,通常我们在文本显示的地方不直接输入本地字符,用英文代替,比如要编写一中文界面的 Qt 程序,应该在程序中使用英文,程序编写完成后,把文本提取出来翻译。对于需要翻译的地方,首先是在该文本处用tr()函数标识,同时制作出.qm信息文件,并在程序中加入QTranslator即可。比如我们在某一程序中有如下语句:
    setCaption(tr(“main window”));
    为了能显示中文,有两种方法:
    方法一:
    l 修改工程文件,加上TRANSLATIONS = xxx.ts
    l lupdate 工程文件名
    l 用linguist编辑刚生成的xxx.ts文件并保存
    l lrelease 工程文件名 xxx.qm
    l 在main.cpp中加入QFont font1(“unifont”,16,50,FALSE,QFont::Unicode);
    qApp->setFont(font1);
    QTranslator *translator = new QTranslator(0);
    translator->load("xxx.qm",".");
    qApp->installTranslator(translator);
    方法二:
    l findtr 文件名(通常为CPP文件) > xxx.po
    l 编辑po文件,其中charset需由iso-8859-1改为GB2312,然后将“main window”翻译成“主窗口”
    l msg2qm –scope zh_CN.GB2312 xxx.po xxx.qm
    l 在main.cpp中加入QFont font1(“unifont”,16,50,FALSE,QFont::Unicode);
    qApp->setFont(font1);
    QTranslator *translator = new QTranslator(0);
    translator->load("xxx.qm",".");
    qApp->installTranslator(translator);
    方法三:
    有时我们只是提供给本地用户使用,无需国际化,QT提供这一支持,在QT中有许多本地字符集同unicode的转换引擎,他们皆为QTextCodec的派生类,如QGbkCodec、QJisCodec, QHebrewCodec等。如:
    QFont font1(“unifont”,16,50,FALSE,QFont::Unicode);
    qApp->setFont(font1);
    QString caption=“主窗口“;
    QTextCodec *gk_codec=QTextCodec::codecForName(“GBK”);
    setCaption(gk_codec->toUnicode(caption));
    从上面可以看出,使用转换引擎可以轻松实现中文显示,简要步骤如下:

    1:修改main.cpp文件,将字体改为unifont

    QFont font1(“unifont”,16,50,FALSE,QFont::Unicode);

    qApp->setFont(font1);

    2:在想汉化的内的头文件中加入QTextCodec指针变量和转换函数QString mytr(char *)

    #include <qtextcodec.h>

    QTextCodec* gbk;

    QString mytr(const char *);
    3:在想汉化的类的实现文件中,修改类构造函数,加入:
    gbk=QTextCodec::codecForName(“GBK”);
    4:在想汉化的类的实现文件中,添加mytr函数代码
    QString Form1::mytr(const char* chars)
    {
    return gbk->toUnicode(chars,strlen(chars));
    }
    5:在想汉化的类的实现文件中,用“mytr”替换“tr”
    2004-12-2 测试了上面的方法三,编译通过,如果将codec成员变量改成QTextCodec派生类变量,编译将通不过,比如将QTextCodec* gbk;改成QGbkCodec* gbk;编译将报告此处有语法错误。下面是相似的用法:
    1:修改***.cpp文件,在顶部加入codec头文件
    #include <qgbkcodec.h>
    2:在***.h文件中,加入mytr()函数声明
    QString mytr(char* buffer,int size);
    3:在***.cpp文件中,加入mytr()定义
    QString mytr(char* buffer,int size)
    {
    QGbkCodec* gbk=QTextCodec::codeForName(“GBK”);
    return gbk->toUnicode(buffer,size);
    }
    4:在需要显示中文的地方,使用mytr函数即可
    5:修改main.cpp文件,将字体改为unifont
    QFont font1(“unifont”,16,50,FALSE,QFont::Unicode);
    qApp->setFont(font1);
    备注:在翻译或转换之前必须将Unicode字体调入,否则显示不出中文,网上相关文章并未提及这一点,如果不显式装载该字体,系统默认的是Latin1,于是汉字显不出来。
    备注2:在编译qt/embedded之前,必须修改qconfig-qpe.h配置文件的内容,将与TextCodec相关的宏定义给去掉,否则QTextCodec::codecForName(“GBK”)将返回NULL指针。
    备注3:使用findtr命令时可同时查找多个文件的tr(),并将查找结果都放入一个文件内,源文件以空格隔开即可,另外,生成的.po和.qm文件的文件名最好与工程文件名相同!
    备注4:如果要显示繁体中文,则需要使用QTextCodec::codecForName(“big5”)。获取本地的使用语言,用 QTextCodec::locale(),它返回Qstring变量,通常如果是中文本地的话,通常其值为zh_CN.GB2312和 zh_TW.Big5,根据这个返回字符串,可以加载相应的codec。如果程序只支持一种编码,也可以直接把整个应用程序的编码设置为一个默认的编码标准,比如系统只需要显示中文和英文,则可以直接设置应用程序的默认编码标准是GBK,如下使用方法:
    qApp->setDefaultCodec( QTextCodec::codecForName("GBK") );
    QLabel *label = new QLabel( tr("中文标签") );
    备注5:如果使用本地的字符转换器,可以使用Qstring的静态函数Qstring::fromLocal8Bit(char* buffer,int size),将本地字符串转换成UNICODE字符串,不过要设置好LANGUAGE环境变量。
    三:QTOpia中文化
    l findtr 文件名 > xxx.po
    l 编辑xxx.po文件
    l msg2qm –scope zh_CN.GB2312 xxx.po xxx.qm
    l 拷贝可执行文件到QPEDIR/bin目录
    l 拷贝xxx.po和xxx.qm文件到QPEDIR/i18n/zh_CN目录
    l 进入QPEDIR/apps/Applications目录创建一新.desktop文件
    l iconv –f utf8 –t GB18030 xxx.desktop > xxx1.desktop
    l 编辑xxx1.desktop文件,主要是修改Exec、Icon、Name和Name[zh_CN]四项
    l iconv –f GB18030 –t utf8 xxx1.desktop > xxx.desktop
    l rm –f xxx1.desktop
    l qvfb –depth 16 &
    l cd $QPEDIR/bin
    l ./qpe
    备注:如果你的系统中有多个qtopia版本,要特别注意QTDIR、QPEDIR、LD_LIBRARY_PATH环境变量
    备注2:可按照此方法汉化qtopia自带的应用程序

    备注3:po文件是中间文件,程序真正需要的是qm文件。iconv是系统自带的内码转换工具,它能将utf8编码的文件转换成gb18030编码的文件,反之也能,转换这一步必不可少,因为desktop文件缺省是utf8编码的,而我们的redhat linux 7。3中文操作系统用的却是gb18030,所以在编辑器打开前需转换。
    四:汉化qtopia-1.5.0 for Arm
    首先按照“三”的方法对要汉化的程序提取*.qm文件和*.desktop桌面配置文件,在做完这一步后,将*.qm文件down到目标机的 /opt/qtopia-free-1.5.0.arm/i18n/zh_CN目录下,同时将*.desktop文件覆盖/opt/qtopia- free-1.5.0.arm/apps目录下的相应文件,目标机的环境变量配置如下:
    export QTDIR=/opt/qt-2.3.3.arm
    export QPEDIR=/opt/qtopia-free-1.5.0.arm
    export LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH
    export PATH=$QPEDIR/bin:$PATH
    export LANG=zh_CN
    开机启动,由于设置的语言为简体中文,qpe会自动为每个应用加载Unifont字体,以及简体中文目录下的翻译文件,因而显示出中文,翻译文件是一个方面,但更关键的是要显示中文必须有中文字体来支持,Unifont字体包含中文字,因而能显示中文,没有相应字体的支持,光有翻译文件是显示不出中文的!
    在经过以上的步骤后,有的应用在显示上依然会显示方框,这多半是由于该窗体相关的字体可能不是支持中文的字体,这需要直接修改源代码,以下是在汉化qtopia-free-1.5.0.arm的过程中的相关记录:
    1. 在编译qtopia的过程中,可能会报告找不到SetButtonGroupID()函数,编译通不过。这是由于库中并没有该函数,一般情况下将该语句隐藏掉,原代码的原意是设置Button按钮在ButtonGroup组的序号,隐藏该语句对应用无影响。出现这个问题,主要在 /netsetup/dialup/dialupbase.cpp文件和/taskbar/shutdown.cpp文件,shutdown.cpp文件的相应行号是:96、149、201、253行。
    2. 修改mpegplayer/playlistwidget.cpp文件的143行和166行,将字体设置改为Unifont,如下:Qfont(“unifont”,16,50,FALSE,QFont::Unicode)或者去掉该语句
    3. 修改snake/interface.cpp的87行和186行,将字体设置改为Unifont,如下:Qfont(“unifont”,16,50,FALSE,QFont::Unicode)或者去掉该语句
    4. 修改qasteroids/view.cpp的104行和qasteroids/toplevel.cpp的109行和165行,将字体设置改为 Unifont,如下:Qfont(“unifont”,16,50,FALSE,QFont::Unicode)或者去掉该语句
    5. 修改sysinfo/versioninfo.cpp文件,将61行的builder改为作者本人,将50行的v改为tr(“corpname”),重新建立po文件,并翻译corpname为国营789北京开发部,使用msg2qm生成qm文件
    6. 修改桌面,位于taskbar目录下,生成libqpe.po和libqpe.qm文件,并将libqpe.qm文件拷贝到i18n/zh_CN目录下
    五:qtopia目录结构
    apps/Applications:应用程序桌面配置文件
    apps/Games:游戏桌面配置文件
    apps/Settings:系统设置桌面配置文件
    bin:二进制可执行文件
    configs:编译配置文件目录
    doc和docs:qtopia的参考文档
    etc:应用配置文件目录
    i18n:国际化目录
    i18n/zh_CN:简体中文目录
    include/qpe:与qtopia相关的头文件目录
    inputmethods:输入法
    library:qtopia部分源代码目录
    pics:与应用相关的图片存放目录
    plugins:各种插件目录,如mpeg3解码插件、输入法插件等
    sounds:音频文件存放目录
    taskbar:桌面程序的源代码(qpe的源代码)
    文件修改记录:
    1:创建于2003/6/9
    2:于2003/8/21添加实现中文显示的第三种方法部分
    3:于2004-1-18添加文章的“四”内容,一个汉化qtopia for arm的实例,以及“五”。


    本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/kw123/archive/2007/07/12/1687217.aspx

    展开全文
  • qt安装Debugger

    千次阅读 2017-05-03 16:16:00
  • QT安装简介

    万次阅读 多人点赞 2018-04-22 10:59:00
    或者http://download.qt.io/archive/qt/选择一个你需要的版本,例如 5.10点击进去后,选择对应操作系统的安装包下载,例如qt-opensource-windows-x86-5.10.0.exe2、安装QT安装包下载好后,双击运行,根据提示一步步...
  • QT安装中的组件选择

    万次阅读 2019-09-12 10:02:51
    QT安装中的组件选择
  • QT安装路径

    千次阅读 2015-08-01 13:17:12
    QT安装路径 http://download.qt.io/archive/ http://wiki.qt.io/Main_Page
  • Ubuntu下qt安装以及qt添加opencv库

    千次阅读 2018-11-21 20:26:42
    Ubuntu下qt安装以及qt添加opencv库 1.下载qt http://download.qt.io/archive/qt/ 选择版本,我一般选最新版。 下载.run文件。 2.安装qtcreator 下载完后,在终端下cd到下载目录,用chmod添加文件执行权限 ...
  • linux 下 QT安装

    千次阅读 2017-07-14 23:28:41
    linux 下 QT安装 Ubuntu下使用atp-get安装,方法如下: sudo apt-get install qt4-dev-tools #开发包 sudo apt-get install qtcreator #IDE  sudo apt-get install qt4-doc #开发帮助文档 sudo apt-get ...
  • windows10下Qt安装及OpenCV配置

    千次阅读 2020-10-22 14:44:15
    Qt安装 Qt下载   前往官网根据需要下载对应版本,由于Qt5.12.0版本之前只支持x86的编译器,5.12.0之后才加入x64的MinGW的编译器,故这边推荐5.12.0之后的版本,这边以5.13.1版本为例。   下载链接:...
  • CentOS下Qt安装

    千次阅读 2018-11-04 02:55:55
    分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow也欢迎大家转载本篇文章。分享知识,造福人民,实现我们中华民族伟大复兴!&nbsp;&nbsp;&nbsp;... CentOS下Qt安装
  • qt 安装好后更新添加组件

    千次阅读 多人点赞 2019-04-10 22:05:55
    QT的组件管理软件并没有在开始菜单或者桌面添加快捷方式(5.9版本),也没有在代码编辑界面设置相关的选项,藏...在被坑了多次之后,在一次偶然的机会,我在QT安装目录发现了QT的组件管理软件MaintenanceTool  ...
  • ubuntu QT安装

    千次阅读 2018-12-17 17:01:14
    Qt是嵌入式开发的必备工具之一,因此在Linux下安装尤其重要。以下是我在Ubuntu下安装Qt5.8的全过程: 1、首先从Qt官网上下载Qt5.8的安装包。 下载网址:http://download.qt.io/archive/qt/ 打开网址显示如下界面...
  • QT安装后出现错误![图片说明](https://img-ask.csdn.net/upload/201704/25/1493093060_891819.png)求大神解决,网上的方法试过一部分 仍然不管用
  • linux下QT安装运行run脚本失败:找不到“offscreen”插件。 This application failed to start because it could not find or load the Qt platform plugin "offscreen" in "/usr/plugins/". Available platform ...
  • QT安装后再添加或删除组件

    千次阅读 2019-02-21 11:32:00
    QT安装目录下打开MaintenanerceTool.exe 手动添加​储存库,要定位一个储存有QT在线安装镜像的网址: https://download.qt.io/online/qtsdkrepository/windows_x86/root/qt/ ...
  • 树莓派—qt安装及其环境搭建全攻略

    千次阅读 2018-11-26 16:54:01
    原文: ... 树莓派—qt安装及其环境搭建全攻略 树莓派qt安装及其环境搭建全攻略 简介 安装qt qt环境配置 为了让各位大佬在搭建qt环境的时候少走弯路,决...
  • QT安装--VC&QT

    千次阅读 2012-03-12 11:51:03
    QT安装--vc&Qt 2010-05-10 17:03:34| 分类: 默认分类|字号 订阅 从这个五一前就开始安装qt来了,结果假期前后折腾了好几天,总是有很多小问题卡在前进的道路上,深深的感受到基础的欠缺对于学习造成很多影响,...
  • Qt安装路径中的platforms文件夹

    千次阅读 2017-08-08 18:20:56
    问题: The application failed to start because it could not find or load the Qt platform plugin "winodws" in "". 在没有安装qt的windows平台打开Qt程序,弹...将Qt安装路径中的platforms文件夹拷过来即可。
  • Qt安装—搭建VS2008+QT开发环境

    千次阅读 2014-04-02 15:30:28
    Qt安装—搭建VS2008+QT开发环境  (一)工欲善其事,必... 总结起来网上流行的VS2008+QT安装说明有以下几个问题需要解释清楚:  1,首先明确需要下载什么版本的QT。网上流行的安装说明只是针对过去旧版本的QT
  • QT安装、添加或删除、更新组件

    万次阅读 多人点赞 2018-12-11 15:06:58
    QT的组件管理软件并没有在开始菜单或者桌面添加快捷方式(5.9版本),也没有在代码编辑界面设置相关的选项,...在被坑了多次之后,在一次偶然的机会,我在QT安装目录发现了QT的组件管理软件MaintenanceTool   ...
  • Qt安装 关于QT的系统概述 Qt安装程序文件及网址 QT安装路径及安装选项 strawberry perl组件安装 Qt编译器设置(MSVC、MinGW)   主文:Python编程环境Anaconda3+Qt5+PyQt5+Eric6+Eclipse+PyDev ...
  • C++ qt 安装

    千次阅读 2017-02-15 15:36:46
    Linux下Qt开发环境的安装与集成  2015-03-12 17:57:27| 分类: QT编程 |举报 |字号 订阅          下载LOFTER 我的照片书 | 近期工作需要在Linux下用...
  • Qt安装使用

    千次阅读 2016-10-30 21:25:18
    为啥安装因为想搞个GUI,弄点大事呗,GUI还是直观的。已有的GUI库:Qt,MFC,GTK,WxWidgets等。据说Qt开发,不用了解很多,而MFC貌似需要知道win的消息机制,这个是啥玩意的我就不懂了。网上建议先学Qt。开发环境...
  • Qt安装及测试

    千次阅读 2019-06-27 22:11:36
    Qt下载 这里给出Qt的离线安装包下载...可以看出,在2019年6月18号,Qt发布了最新的版本5.13.0,我这里安装的版本是5.11.1: http://download.qt.io/archive/qt/5.11/5.11.1/ 5.11.1版本 我这里是windows系统因...
  • Qt安装教程-详细

    千次阅读 2019-07-14 14:39:26
    本文主要介绍了Qt5.9.7的安装步骤。 Qt的下载地址: http://download.qt.io/archive/qt/。 qt-opensource-windows-x86-5.9.7.exe 是一个综合的安装包(5.8之前分开下载各个编译器库),下载后安装的时候可以选择装哪个...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 25,262
精华内容 10,104
关键字:

qt安装