导航:首页 > 净水问答 > qt48触摸屏过滤

qt48触摸屏过滤

发布时间:2022-05-06 20:11:30

1. linux qt 程序 怎样使用 触摸屏

只看环境变量不能看出问题, export QWS_MOUSE_PROTO='Tslib:/dev/input/event1' 和 export TSLIB_TSDEVICE='/dev/input/event1' 查看一下该路径下是否存在名为“event1”的文件,我记得好像是event0

2. 用QT开发ARM和用C语言keil开发ARM孰优孰略

这是一份来自【北航嵌入式培训中心】的嵌入式linux工程师的课程表,楼主看完之后应该能知道嵌入式linux培训该学习哪些东西,先学什么,后学什么,基本上会有一个框架。

第一阶段 合格Linux C程序员阶段

课程名称

课程内容

课时

C语言

基本C语言语法,变量,过程控制
C语言简单参数传递,数组和指针概念
基本C语言程序设计实践初级
专题(1)C和指针
专题(2)C语言的Bug和笔试真题分析

56
(选学)

Linux系统与C语言编程(初、中、高级)

Linux基本操作
Linux下的基本编程方法binutils工具集介绍
Linux下的c语言程序设计和编程习惯
shell程序设计;文件与I/O操作;进程与信号;进程间通信;网络编程

136

数据结构C语言描述

线性表;栈和队列
数组和广义表;树和二叉树
图的概念和应用;动态存储管理
排序和查找的讨论

32

C++程序设计

C++程序设计基本概念,类和数据抽象构造和析构函数,函数的二义性讨论;函数重载

16

QT程序设计

QT的介绍和开发环境;QT的类和控件,信号和槽;QT应用实例应用

24

项目实战:划艇收费系、数码相框(PC机)

第二阶段 嵌入式Linux C程序员阶段

课程名称

课程内容

课时

ARM体系结构与编程

ARM概述及指令分类、寻址方式
ARM指令集精讲和汇编语言程序设计ARM存储系统和中断、异常处理
基于ARM的接口编程

32

嵌入式Linux系统移植

嵌入式系统概念和开发环境搭建
Boot loader概念和启动过程分析
U-Boot移植和代码分析
嵌入式Linux系统移植和编译
嵌入式Linux系统接口驱动移植
文件系统的概念和根文件系统的制作

48

QT移植

QT编译和应用库的制作
QT移植和应用程序编程

16

第三阶段 嵌入式Linux C驱动工程师阶段

课程名称

课程内容

课时

嵌入式Linux系统设备驱动程序开发(初级)

Linux设备驱动的概念和开发过程
Linux设备驱动中的机制和策略
Linux设备驱动模型和高级同步机制
嵌入式Linux接口驱动工程实践

48

项目实战:视频监控系统

第四阶段 嵌入式Linux工程师阶段

课程名称

课程内容

课时

嵌入式Linux系统设备驱动程序开发(高级)

触摸屏驱动研究与开发实践
MTD设备驱动研究与开发实践
Frame Buffer和LCD驱动研究与实践
网络设备驱动研究与开发实践
SD卡驱动研究与开发实践
USB设备驱动与开发实践

48

工程实践项目(根据课程进度安排项目):
GPRS远程网络视频监控系统/数码相框(开发板)
智能家居系统
简易POS机系统
车载娱乐终端

补充:
二、万事开头难,找准了方法,一直坚持,一定会学好的,加油!

3. Qt Mobility 与Qt4.7中的Qt Declarative、QML有什么关系我要做触摸屏界面的话,应该用Qt Mobility还是Qt

QML是一种脚本标准,做界面不错的,可是它需要Qt Declarative模块才能嵌入到程序中使用,而Qt Mobility是QT中为移动设备集成的开发库,包含了控制手机等设备中通讯录,网络,短信息等功能的模块!如果做界面,推荐用QML,不过内核部分一定会用其他的模块。MeeGo是新的操作系统,它支持Qt,可是并不是它所有的东西都是QT做的~ 谢谢~

4. 求Qt高手 我需要一个判断触摸屏是否被使用,不使用则关闭背光的程序。

鼠标事件,加定时器,如果鼠标移动,则定时器重新开始,定时器超时,则背光鼠标移动,关闭背光,还有就是设置嵌入式的一些东西,QWS之类的,不过既然能用到触摸屏上了,鼠标设置的应该已经完成了。

5. 如何让QT编译器显示光标

1 PC版本

在终端中输入:sudo apt-get install qt4-dev-tools qt4-doc qt4-qtconfig qt4-demos qt4-designer qt4-qmlviewer
◆qt4-dev-tools 中包括了Qt Assistant,Qt Linguist,Qt Creator
◆qt4-doc 这个是帮助文档
◆qt4-qtconfig Qt的配置工具,这个装好默认好
◆qt4-demos 官方的一些Demo
◆qt4-designer 可视化窗体设置工具
◆qt4-qmlviewer 和qtcreator相关

安装后,没有安装Qt Creator,在Ubuntu 图形桌面上点击左侧的Ubuntu Software Center,搜索Qt ,选择Qt Creator
完成后,在terminal命令行执行命令 qtcreator启动Qt Creator了

注:如果需要编译特定版本的,如4.8.5,则:
(1) 安装一些依赖包
sudo apt-get install libX11-dev libXext-dev libXtst-dev
(2) 下载Qt源码包 qt-everywhere-opensource-src-4.8.5.tar.gz,解压后进入目录
用命令 sudo ./configure -prefix /usr/local/Trolltech/Qt-4.8.5;sudo make;sudo make install即可

2 ARM版本

注:以下所使用的交叉编译工具为arm-none-linux-gnueabi 如果使用arm-linux 做相应的修改即可

(1)下载Qt源码包 qt-everywhere-opensource-src-4.8.5.tar.gz;
(2) 解压后进入该文件夹,执行.
./configure -opensource -embedded arm -xplatform qws/linux-arm-gnueabi-g++ -no-webkit -qt-libtiff -qt-libmng -qt-libjpeg -qt-libpng -no-qt3support -nomake demos -nomake docs -nomake examples -little-endian -host-little-endian -fast -lrt

(3) 执行make,及make install命令,一般时间比较长
(4) 完成后修改mkspecs文件的权限,供qt creator使用: sudo chmod 775 mkspecs -R
(5) 配置qt creator:工具->选项->Qt4 找到“手动设置”增加一个,qmake路径填第二步中的安装目录下的qmake路径,”usr/local/Trolltech/QtEmbedded-4.8.5-arm/bin/qmake“
(6)配置完成后,打开项目后点左侧“项目”,选择刚才配置的Qt版本即可编译生成arm版程序了

3 移植到ARM
(1)需要将usr/local/Trolltech/QtEmbedded-4.8.5-arm/lib移植到ARM板上相同的位置,将plugins里的.so也移入..../QtEmbedded-4.8.5-arm/lib
(2) 对(1)中的lib/下的.so做链接
ln -s libQtDeclarative.so.4.8.5 libQtDeclarative.so
ln -s libQtDeclarative.so.4.8.5 libQtDeclarative.so.4
ln -s libQtDeclarative.so.4.8.5 libQtDeclarative.so.4.8

ln -s libQtGui.so.4.8.5 libQtGui.so
ln -s libQtGui.so.4.8.5 libQtGui.so.4
ln -s libQtGui.so.4.8.5 libQtGui.so.4.8

......
注:(1)(2) 也可以用压缩打包整个lib,拷贝过去来实现

(3)vi ~/.bashrc 文件,加入
QTDIR=usr/local/Trolltech/QtEmbedded-4.8.5-arm

export QTDIR
PATH=$QTDIR/lib:$PATH
export PATH
LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH
export LD_LIBRARY_PATH

4 一些常见错误
(1) “QMAKESPEC has not been set”,解决方案:sudo gedit ~/.bashrc ,添加内容:export QMAKESPEC=usr/local/Trolltech/QtEmbedded-4.8.5-arm/mkspecs/qws/linux-arm-gnueabi-g++
(2) 安装了多种版本的QT,如果想默认使用QtEmbeddedb版本,可以在上述文件中加入:export PATH=/usr/local/Trolltech/QtEmbedded-4.5.2-arm/bin:$PATH
(3) 配置完成后,可使用qmake -project;qmake;make进行工程编译
(4) arm开发板的终端打不开,出现"grantpt failed:..."问题,可以输入:mount -o remount,gid=5,mode=620 /dev/pts 回车
(5) Qtcreator配置出现,没有编译链,则可加入GCCE编译链,目标位置就是linux-none-arm-guneabi-g++所在位置
(6) 出现qmlviewer 没有安装的问题,可从/usr/bin里将qml开头的三个可执行文件拷到usr/local/Trolltech/QtEmbedded-4.8.5-arm/bin下
(7) make 出现arm-none-linux-gnueabi-g++命令未找到,如果确定环境变量已经添加,则检查文件所属账号是不是你现在账户;环境变量如果一直不对,可以关掉终端,新开一个,重新设置
(8) 如果开发板运行程序的时候出现 cannot mix incompatible Qt library with this library,查找资料,大家都说最可行性的解决方案是卸干净,重新编译,自己花了好长时间重新编译后,发现还是一样。然后用ldd <filename> 查看了运行文件依赖的库,发现程序有部分链接到了开发板上的Qt库。做了Qt动态库的全部ln(具体见第3部分)

//////////////////////////////////////////////////////////////////////////////////////////////////////由于项目需要,需要加入触屏,编译过程中发现不同与之前的新的问题,记录如下
一 触屏库tslib的编译
1 下载相应的工具

do apt-get install automake
sudo apt-get install autogen
sudo apt-get install autoconf
sudo apt-get install libtool

2 很重要的一步,设置 CC和CXX
export CC=.... ,export CXX=...,一般CC=arm-linux-gcc ,CXX=arm-linux-g++,我的交叉编译环境是arm-none-linux-gnueabi-gcc,arm-none-linux-gnueabi-g++,输入命令 export CC=arm-none-linux-gnueabi-gcc export CXX=arm-none-linux-gnueabi-g++

3 编译
cd tslib
./autogen.shecho "ac_cv_func_malloc_0_nonnull=yes" > arm-none-linux-gnueabi.cache #(这样做到目的是避免出现undefined reference to rpl_malloc错误)./configure --host=arm-none-linux-gnueabi CC=<你的cc编译器所在路径> CXX=<你的++编译器所在路径> --cache-file=arm-none-linux-gnueabi.cache -prefix=/usr/local/tslibmakemake install
4 检查,可进入/usr/local/tslib/bin 里,file ts_test(或其他文件) 如果显示ARM,表明编译正确,如果显示80386表明你用的不是交叉编译器,而是系统的gcc。注:因为版本不一致,导致编译QT时一直出现 fail to find tslib function...,加入-verbose选项,打印出/opt/../ld:cannot find -lts(tslib和qt编译器版本不对应造成)。
二 编译QTe 4.8.5
1 编译指令需要改为./configure -opensource -embedded arm -xplatform qws/linux-arm-gnueabi-g++ -no-webkit -qt-libtiff -qt-libmng -qt-libjpeg -qt-libpng -no-qt3support -nomake demos -nomake docs -nomake examples -little-endian -host-little-endian -no-xcursor -no-mouse-linuxtp -qt-mouse-tslib -I/usr/local/tslib/include -L/usr/local/tslib/lib -fast -lrt
不需要鼠标的话就加上绿色的文字,并且修改./src/gui/embedded/qwscursor_qws.h,在文件头部加上#define QT_NO_QWS_CURSOR
2 编译器最好在qws/linux-arm-gnueabi-g++/qmake.conf中指定完全的路径,否则可能出现一些奇怪的错误。
3 qmake.conf中记得加入-lts 在g++ gcc后面
三 移植到开发板
如果开发板中没有tslib库,则需要进行移植1 将tslib库拷到开发板 /usr/local/tslib2 修改ts.conf vi /usr/local/tslib/etc/ts.conf -》将#mole_raw input前的#去掉3 vi /etc/profile 添加export TSLIB_ROOT=/usr/local/tslib
export TSLIB_TSDEVICE=/dev/input/event1
export QWS_MOUSE_PROTO=tslib:/dev/input/event1
export TSLIB_CALIBFILE=/etc/pointercal
export TSLIB_CONFFILE=$TSLIB_ROOT/etc/ts.conf
export TSLIB_PLUGINDIR=$TSLIB_ROOT/lib/ts
export TSLIB_FBDEVICE=/dev/fb0
export TSLIB_CONSOLEDEVICE=none #避免出现“open console device: No such file or directory KDSETMODE: Bad file descriptor”的错误
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$TSLIB_ROOT/libTSLIB_TSDEVICE 和QWS_MOUSE_PROTO这两项需要查看自己的板子的触摸屏设备对应/dev/input/下哪个文件可用cat /proc/bus/input/devices查看具体可参考博客http://blog.163.com/zhuandi_h/blog/static/180270288201222310291262/


1

6. Qt怎样获取触控屏上的多个触摸点的各个坐标!

没做过,但是以我的思路大概可以有这个做法,qt在同一个界面 press/click 事件是线性的,也就是一个点一个点来的,所以要判断多点触控建议同时判断 时间和空间
首先两个点的时间间隔必须小于 5ms(QT毫秒级响应会有1-2个ms的误差,开发环境win10/5.9.5),然后两个点的距离必须大于多少个像素(这个自己定),这样就可以知道是不是多点触控

7. tq2440怎么移植qt应用程序

您好,cd qt-4.6.3-x11
sourc qt_x11_setenv.sh
打开qtcreator,建立一个工程假设为form,完成后可以在虚拟机看下做的界面.
进入刚才建立的工程目录,
qmake -project
qmake
make
./form
就可以看到界面了
----------------------------------------------------------------------------------------------------
接下去是移植到开发板.
1. 把刚才做的界面源码复制到qt-4.6.3-arm
cd opt/qt-4.6.3-arm
source qt_arm_setenv.sh //因为要用到arm版的qmake, 环境变量要重新设置
qmake -project
qmake
make
./form
此时会提示错误打不开,是正常的,这是在arm板上运行的

2. 启动开发板,在根目录下建立tq2440和tslib 2个文件夹
//这里貌似QTDIR的路径要与电脑上一致,不然移植字体不识别,就是要把fedora10 系统的 usr/local/Trolltech/QtEmbedded-4.6.3-arm/lib 复制到ARM的usr/local/Trolltech/QtEmbedded-4.6.3-arm/lib

mkdir tq2440
mkdr tslib
把fedora10 系统里的usr/local/Trolltech/QtEmbedded-4.6.3-arm/lib 整个lb文件夹拷到开发板/tq2440下
把tslib1.4.tar.gz 安装生成的tslib文件夹内容拷到开发板上/tslib
//tslib1.4的安装这里不赘述了,网上找个都没什么问题
现在,我们可以在开发板根目录看到tq2440和tslib这2个文件夹.
tq2440下有lib文件夹,tslib文件夹下有bin include etc lib 4个文件夹.
网上拷贝这些文件多是搭建nfs服务器做的,我是在虚拟机直接把这些文件夹打包(tar zcvf xx.tar.gz xx),共享传给我我的主机,然后主机通过secureCRT下载到开发板,就免去了搭nfs.

3. 在开发板的 /etc/profile中追加:
export QTDIR=/tq2440
export T_ROOT=/tslib
export PATH=$QTDIR/bin:$PATH
export TSLIB_CONSOLEDEVICE=none
export TSLIB_FBDEVICE=/dev/fb0
export TSLIB_TSDEVICE=/dev/event0
export TSLIB_PLUGINDIR=$T_ROOT/lib/ts
export TSLIB_CONFFILE=$T_ROOT/etc/ts.conf
export TSLIB_CALIBFILE=/etc/pointercal
export QWS_MOUSE_PROTO=tslib:/dev/event0
export LD_LIBRARY_PATH=$T_ROOT/lib:$QTDIR/lib
这里需要注意3句代码:
export TSLIB_FBDEVICE=/dev/fb0
export TSLIB_TSDEVICE=/dev/event0
export QWS_MOUSE_PROTO=tslib:/dev/event0
有的开发板fb0 event0是在/dev/input/目录下的
所以要改为
export TSLIB_FBDEVICE=/dev/input/fb0
export TSLIB_TSDEVICE=/dev/input/event0
export QWS_MOUSE_PROTO=tslib:/dev/input/event0
再执行一下:source /etc/profile 使系统更新一遍刚设置的系统环境变量.
验证变量设置是否成功,在开发板终端下执行
echo $QTDIR
如果显示/tq2440,则说明设置成功了

4 接下来我们还得设置一下触摸屏的配置文件ts.conf.
它在哪里呢?前面我们已经拷到开发板/tslib/下,那么tslib一共就有bin etc include lib 4个目录,而ts.conf就在etc目录下,开发板下用
vi /tslib/etc/ts.conf
把# mole_raw input
前面的“#”号去掉,然后把该行移至行首
现在差不多移植完成了,可以把自己用qtcreator写的程序下载到板子运行.
我是在板子目录下新建mkdir test文件夹
上文已经说到已经把qtcreator做的界面编译成arm版的了,现在把这个可执行文件form下载到开发板/test目录下
在开发板执行:
cd /test
chmod a+x form //提示权限错误就加这句,没有提示加不加无所谓
./form -qws
会出现“relocation error: /usr/local/Trolltech/QtEmbedded-4.6.2-arm/lib/libQtGui.so.4: symbol powf, version GLIBCXX_3.4 not defined in file libstdc++.so.6 with link time reference”错误
我的解决办法是进入主机/opt/toolchains/arm920t-eabi/arm-angstrom-linux-gnueabi/lib目录下找到libstdc++.so.6链接的文件(通过右键属性——〉基本,可以看到链接的文件)libstdc++.so.6.0.8,重命名为libstdc++.so.6复制下载到开发板/tq2440/lib/目录下,之前别忘了将该文件夹下的libstdc++.so.6移到其它地方或重命名,如libstdc++.so.6.old。
*重命名其实是比较野蛮的方法,可以用ln命令的,参照下面这篇文章……
http://hi..com/a263238386/blog/item/362f01ce7b11a10a93457eae.html
然后再运行./form –qws,看问题是不是解决了!
现在可以看到开发板界面出现自己qt写的界面了

5. 不过触摸屏还没有校准,进入开发板根目录/tslib
cd bin
./ts_calibrate //触摸屏校准程序
运行该程序,屏幕出现5点校准画面,依次点击,将生成触摸屏校准数据文件/etc/pointercal
./ts_test //触摸屏拖曳测试程序
可以用这个来测试校准的怎么样

6. 开机自动启动qt 程序
如果想在开机后直接运行自己编的qt程序,而不想出现qt自带的那个界面只需把/etc/init.d/rcS中的
/bin/qtopia & 注释掉,前面加个#号就行:
#/bin/qtopia &
并在下面加上自己的启动程序
/tq2440/run.sh &
//添加一个执行脚本行,这个脚本因为在/etc/init.d/rcS中,所以会被自动运行(注意后面最好有个&,使他在后台执行,否则无法通过串口操作控制台)
修改echo "Starting Qtopia, please waiting..." > /dev/tty1
为echo "Starting myapps, please waiting..." > /dev/tty1
然后在/tq2440/目录下建立一个run.sh文件,内容如下:
#! /bin/sh
export QTDIR=/tq2440
export T_ROOT=/tslib
export PATH=$QTDIR/bin:$PATH
export TSLIB_CONSOLEDEVICE=none
export TSLIB_FBDEVICE=/dev/fb0
export TSLIB_TSDEVICE=/dev/event0 //这边可能有的开发板是export TSLIB_TSDEVICE=/dev/input/event0
export TSLIB_PLUGINDIR=$T_ROOT/lib/ts
export TSLIB_CONFFILE=$T_ROOT/etc/ts.conf
export TSLIB_CALIBFILE=/etc/pointercal
export QWS_MOUSE_PROTO=tslib:/dev/event0 //同上,可能在/dev/input/event0
export LD_LIBRARY_PATH=$T_ROOT/lib:$QTDIR/lib
/test/form -qws
重启之后,就可以看见自己添加的qt程序开机自动运行,并且我们可以正常使用触屏。原理就是qt程序依赖很多的动态共享库,在运行的时候必须找到这个共享库,所以在运行qt程序之前必须显式地指明这些共享库的所在位置。

8. QT按钮点击事件(ARM触摸屏)

我们最近也是QT的程序在触摸屏ARM版上跑,没有出现你这种问题。
click事件需要按下并且释放两个动作才会触发,按照楼主的描述,就是没有侦测到释放这个动作
我猜测可能的原因有三种:
1、触摸屏损坏,当我们按下的时候,触摸屏侦测到了,释放的时候却没有侦测到
2、触摸屏驱动的原因,释放的时候触摸屏侦测到了,但是触摸屏驱动没有把这个信号传给系统,所以系统也不知道已经释放了
3、软件逻辑的原因(这个可能比较小了),软件监听了按钮按下的信号,当按钮按下时(还没松开)去做某件事,导致主线程阻塞了,
所以按钮暂时没有被主线程释放(置为弹出状态)

9. 用Qt Creator设计好了界面 怎么编写程序打开音乐和图片

您好,我也想问一下,已经编写好了一个程序,假设为520.c,该程序能正确运行,现在想设计一个界面,在该界面添加一个按钮,点击该按钮就能运行以前编写好的520.c程序,请问怎么实现?

阅读全文

与qt48触摸屏过滤相关的资料

热点内容
冷冻污水冷却塔多少钱 浏览:239
污水管线上闸阀和蝶阀 浏览:969
废旧油罐注水处理 浏览:426
污水里有鲫鱼 浏览:465
排放的污水为什么需要经过压滤机过滤 浏览:898
原料油的蒸馏图 浏览:760
低温热解废水 浏览:584
日本核废水英语 浏览:696
什么去电离子辐射 浏览:413
反渗透膜可去除什么 浏览:818
净水器的桶装水怎么放 浏览:907
屈臣氏蒸馏水加电瓶里 浏览:984
污水工程做什么会计科目 浏览:717
净水器出废水纯水不出怎么回事 浏览:891
治理废水作文 浏览:577
东河机场南黄线污水治理 浏览:158
污水中标通知书 浏览:37
天津哪里买到滤芯 浏览:546
污水管定额多少钱一个 浏览:845
长丝布滤芯是什么 浏览:413