标签 QT 下的文章

Qt5.6和tslib配合使用

tslib环境变量配置

export TSLIB_TSEVENTTYPE='INPUT'
export TSLIB_CALIBFILE='/etc/pointercal'
export TSLIB_CONFFLLE='/etc/ts.conf'
export TSLIB_CONSOLEDEVICE='none'
export TSLIB_FBDEVIC=='/dev/fb0'
export TSLIB_PLUGINDIR='/usr/lib/ts'
export TSLIB_TSDEVICE='/dev/input/event0'

Qt5配置touch screen环境变量

export QT_QPA_EVDEV_MOUSE_PARAMETERS=/dev/input/event0
export QT_QPA_EVDEV_TOUCHSCREEN_PARAMETERS=/dev/input/event0:rotate=270
export QT_QPA_GENERIC_PLUGINS=tslib
export QT_QPA_FB_TSLIB=1

Win10下打包Qt5.8应用

不知道从什么时候开发Qt有提供了windeployqt.exe工具,可以直接把qt应用相关的库提取出来。windeployqt.exe的路径在"<Qt安装目录>/bin"下面,为方便使用可以加入到系统环境变量中。需要先以Release方式编译应用,再新建一个目录,把应用binary放在目录下,然后再执行windeployqt.exe工具,如下:

windeployqt.exe helloworl.exe

执行成功后,会在当前目录下出现一些dll文件和目录:

iconengines/
imageformats/
platforms/
translations/
D3Dcompiler_47.dll
libEGL.dll
libGLESV2.dll
opengl32sw.dll
Qt5Core.dll
Qt5Gui.dll
Qt5SerialPort.dll
Qt5Svg.dll
Qt5Widgets.sll
helloworld.exe

目录有35MB左右,可以直接打包7z来分发使用。当然有需要也可以打包成单exe文件或再加壳压缩。

打包完后在其它PC运行发现还是缺少一些库文件,如libgcc_s_dw2-1.dll, libwinpthread-1.dll。查了查是因为我使用的是mingw工具链的原因。顺便想起现在很多语言的项目管理工具都是自动解决依赖的功能,Qt要加油了。

micro2440下运行qt4中的demos程序

Tags: QT,arm

发一个很早写的文档,发布在某论坛上,现在要整理资,所以就搬过来了。文档写于2011年4月21日。


由于最近要移植一个FTP程序,而程序的界面是用QT4画的,所以就把QT4的移植做了下。说说我移植的思想:由于是用QT4画的界面,为了更好的体验QT4,所以把QT4的环境也移植到micro2440,与其说是程序的移植,更直接的说是环境的移植。友善光盘中用的是qtopia2.2的,所以本文是在这个基础上改的。

需要工具及软件资源:
1.光盘中自带的super-vivi-128m, zImage_T35, root_qtopia_128m.img
2.qt-everywhere-opensource-src-4.7.2.tar.gz

准备工作:
1.要把开发环境搭建好
2.安装tslib包
3.把光盘中的那三个文件烧到板子上

正式开始:
1.用终端连上板子,我用的是minicom。然后,设置IP,并且把主机上NFS文件挂载到板子上。我的主机是192.168.2.2的IP,板子用192.168.2.10。(记得主机要把NFS服务开启了)
ifconfig eth0 192.168.2.10mount -t nfs -o nolock 192.168.2.2:/opt/armnfs /mnt/

2.拷贝必须文件在这一步里,再安装一遍qt,方法就和帖子中安装嵌入式arm版的方法一样,不同的是路径要改为/opt/Qt4.7下面是配置选项,之后就是gmake, sudo gmake install,期间你可以稍休息下了。至于tslib不用再装了,只需要指定目录即可,我的在/opt/tslib下。为了方便,我直接写了个把配置写到shell文件中了,大家也节省时间。下载后,先重命名,然后执行就可以了。

首先要拷贝的是Qt4.7目录等安装后你会发现,/opt/Qt4.7中的文件和你原来安装的QtEmbedded-4.7.2-arm是一样的,我们这个做只是为了更明白些,等你做第二遍的时候,你就会明白了。你要把/opt/Qt4.7这个目录拷贝到NFS文件夹中sudo cp -R /opt/Qt4.7 /opt/armnfs

然后在板子的控制台终端中将/mnt中的Qt4.7这个文件夹移动到/opt下,注意这个地方目录要准确,不可随意更改。我们之前已经把主机的/opt/armnfs挂载到了板子的/mnt下了cd /mntmv Qt4.7 /opt/

然后拷贝的是tslib目录我的tslib目录在/opt下,所以先将tslib拷贝到armnfs文件夹中, cd /opt/armnfssudo cp -R /opt/tslib .

和前面的的一样,也是在板子的终端中把tslib移动到板子的/usr/local中mv /mnt/tslib /usr/local

3.使触摸屏生效修改板子上的/usr/local/tslib/etc/ts.conf文件,将第二行的“#”号和空格删除

4.设置板子的运行环境下面就是添加板子的环境变量,让QT4程序能用触摸屏。[方法有两种:第一种,把下面的代码添加到/etc/profile中即可[font=]第二种,写一个SHELL文件,然后把代码放进去,这个只要加载这个文件即可
记得检查相应的目录,如果你和我的一样,那就没问题了。
export set TSLIB_ROOT=/usr/local/tslibexport set TSLIB_CONSOLEDEVICE=noneexport set TSLIB_FBDEVICE=/dev/fb0export set TSLIB_TSDEVICE=/dev/input/event0export set TSLIB_PLUGINDIR=$TSLIB_ROOT/lib/tsexport set TSLIB_CONFFILE=$TSLIB_ROOT/etc/ts.confexport set POINTERCAL_FILE=/etc/pointercalexport set TSLIB_CALIBFILE=/etc/pointercalexport set QWS_MOUSE_PROTO="Tslib:/dev/input/event0"export set QWS_DISPLAY="LinuxFb:/dev/fb0"export set QWS_SIZE=320*240export set LD_LIBRARY_PATH=$TSLIB_ROOT/lib:$QTDIR/lib:/usr/local/lib:$LD_LIBRARY_PATH

添加完后,要看看变量生效了没,用env命令即可!

5.校准屏幕
cd /usr/local/tslib/bin
./ts_calibrate
按照上面的命令操作,你应该能看见板子的屏幕上有校准的十字标

6.体验QT4的demos程序做到这里,我们有理由要休息一下。所以,你要把做的就是把qtopia的服务给结束掉。结束方法是,点击qtopia2.2“设置”下的“关机”按钮然后再点击“Terminate Server”按钮。下面来体验下demos中的fluidlauncher程序,至于为什么是这个程序,因为我稀饭呗!
cd /opt/Qt.4.7/demos//embedded/fluidlauncher
./fluidlauncher -qws

QT4中使用C的静态库或动态库

Tags: QT

这几天跟老师学QT4,还要写个播放器,郁闷呐。QT使用c++来写程序,可惜本人菜鸟一个,没学过c++,只能用c来写程序了,可是有个问题,QT使用c的标准库会有问题,所以我们可以把c写个程序做成库,以便让QT来调用,这样应该可以符合内聚性的精神吧,o(∩∩)o...哈哈。下面就来说说,本人今天的成果。

目的:显示一个窗口,点击按钮的时候在终端显示字符。

先写两个文件test.c和test.h,test.c中写一个print函数,函数中写一个printf即可;test.h中声明test.c中的print函数即可。
由于制作动态库和静态库都需要.o的文件,所以前面是一样的。

gcc -c test.c
下面就是重点了!!

一.QT4使用静态库

ar crv libtest.a test.o

执行完上面的命令,就会生成一个libtest.a的文件,下面就让QT来调用这个静态库文件。

用QTCreator创建一个工程,再UI界面中放一个pushButton即可。接下来就是写代码了。
我们在工程的mainwindow.cpp中来调用库文件.
首先在mainwindow.cpp的开头添加如下代码

extern "C"{
#include "test.h"
}

然后在构造方法中写槽,即连接函数
connect(ui->pushButton,SIGNAL(clicked()),this,SLOT(output()));

还要添加一个方法,方法名为output(),里面写print()即可。
还有最后一步,在mainwindow.h文件中声明一下刚才写的output方法即可。

qmake -project
qmake
make

二.QT4调用动态库

同样要先生成test.o的文件,然后执行下面的命令

gcc -shared -fPCI -o libtest.so test.o

接下来就和上面的步骤一样,要添加相应的代码,添加完后执行下面的命令

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:.
qmake -project
qmake
make

注意:制作库文件时,不要在qt的工程文件夹下做。做好后再拷贝到工程下即可。

最新文章

最近回复

  • Blackrose: 感谢拍砖!嗯,那句话...
  • aa: “Raspberry...
  • Blackrose: 外部只是帮你把芯片启...
  • : 内部时钟比外部的频率...
  • Blackrose: 你这评论比正文更有内容么
  • 7hao: CR+LF ...
  • Blackrose: 可以是你更新软件源后...
  • sxk: 博主,我的系统是ub...
  • Blackrose: 你深得精髓么
  • qihao: 这篇文章的简单总结就...

分类

归档

其它