在Qt Creator中设计编写好界面程序后。按照《OK 6410 Qt移植百科全书》进行操作。
进入项目文件目录,设置好交叉编译器,可以用arm-linux-gcc -v 查看交叉编译器是否设置正确。找到编译Qtopia生成的目录,在其中找到qmake,在项目文件目录下,终端中输入qmake的绝对路径,用来生成Makefile 。该过程中没有出错的话,在项目文件中会生成一个Makefile文件,在CFLAGS和CXXFLAGS的的等号后面加上-fno-rtti ,然后在该路径下,执行make,生成可执行文件。
要将该文件移植到板子上之前,需要对环境变量进行配置,《OK 6410 Qt移植百科全书》上写的环境变量配置没有写全。完整的环境变量的配置如下:
export PATH=/opt/Qtopia4.4.3/bin:/sbin:/usr/sbin:/bin:/usr/bin
export QPEDIR=/opt/Qtopia4.4.3
export QTDIR=/opt/Qtopia4.4.3
export QT_QWS_FONTDIR=/opt/Qtopia4.4.3/lib/fonts/
export QWS_DISPLAY=LinuxFb:mmWidth76:mmHeight44:1 (与字体大小有关)
export QWS_MOUSE_PROTO=Tslib:/dev/input/event1
export TSLIB_CALIBFILE=/etc/pointercal
export TSLIB_CONFFILE=/usr/local/tslib/etc/ts.conf
export TSLIB_CONSOLEDEVICE=none
export TSLIB_FBDEVICE=/dev/fb0
export TSLIB_PLUGINDIR=/usr/local/tslib/lib/tsexport TSLIB_ROOT=/usr/local/tslib
export TSLIB_TSDEVICE=/dev/input/event1
export TSLIB_TSEVENTTYPE=H3600
export QT_PLUGIN_PATH=/opt/Qtopia4.4.3/plugins:/opt/Qtopia4.4.3/qt_plugins/
export LD_LIBRARY_PATH=$TSLIB_ROOT/lib:$QTDIR/lib:$QTDIR/qt_plugins/:/usr/local/lib:$LD_LIBRARY_PATH
《OK 6410 Qt移植百科全书》少了最后一行。
其中,export QWS_DISPLAY=LinuxFb:mmWidth76:mmHeight44:1
可以改变mmWidth和mmHeight44后面的数字,经尝试发现,export QWS_DISPLAY=LinuxFb:mmWidth76:mmHeight100:1 在Ok6410的4.3寸屏幕上比较合适。可以显示清晰字体。
在板子上显示中文:
在板子上可以看到Qtopia的lib库中,有fonts字体库,在qt-4.7.1中也有字体库。把qt4.7.1中的wenquanyi字体都拷贝到Qtopia的字体库中。
在Qt creator中在main.cpp中添加下面红色字体:
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
QTextCodec::setCodecForTr(QTextCodec::codecForLocale());
QTextCodec::setCodecForLocale(QTextCodec::codecForName("UTF-8"));
QTextCodec::setCodecForTr(QTextCodec::codecForName("UTF-8"));
QTextCodec::setCodecForCStrings(QTextCodec::codecForName("UTF-8"));
MainWindow w;
w.show();
w.setFont(QFont("wenquanyi",12,QFont::Normal));
return a.exec();
}
这样生成的可执文件可以在板子上显示中文。
板子上是Otopia2.0:
首先在Ubuntu的终端中设置好交叉编译器,按照《OK6410移植百科》上的方法,编译qt4.7.1,会在qt4.7.1的目录下的bin文件夹下面生成qmake,然后make install安装qmake,接下来用该qmake安装上面的方法,生成Makefile,修改Makefile的方法如上。接下来的步骤就按照上面来。在板子上设置环境变量的时候,记得把Qtopia4.4.3改成Qtopia。
Qt可执行程序移植到板子上后,点击没的反映,要么是出现花屏,显示桌面,解决方法:启动的时候启动自己的界面。
首先:修改/etc/init.d中rcS的内容,用#注销/bin/qtopia &这句话。
然后:添加代码
cd / (我的qt可执行程序所在的目录)
. setqt4env (环境变量)
./clmcu8 -qws &
最后:保持该启动文件。
其中setq4env是这样来的:
在/bin文件夹中创建该文件,将/bin/下的qt4里面的内容全部复制到setqt4env,然后删除最后三行添加:
export PATH=/opt/Qtopia/bin:/sbin:/usr/sbin:/bin:/usr/bin
export QPEDIR=/opt/Qtopia
export QTDIR=/opt/Qtopia
export QT_QWS_FONTDIR=/opt/Qtopia/lib/fonts/
export QT_PLUGIN_PATH=/opt/Qtopia/plugins:/opt/Qtopia/qt_plugins/
export LD_LIBRARY_PATH=$TSLIB_ROOT/lib:$QTDIR/lib:$QTDIR/qt_plugins/:/usr/local/
这样,启动的就是自己的界面了,并且可以使用触摸屏