【qt】QWS和 QPA
一、QPA(Qt Platform Abstraction)介绍
QPA is the platform abstraction layer for Qt 5 and replaces QWS and the platform ports from Qt 4.
Qt4的程序在嵌入式Linux运行时,需要加入参数“-qws”启动Qt窗口系统服务,如“./app -qws”运行app程序。从Qt5.0开始,Qt自身不再单独实现窗口系统,QWS不复存在,取而代之的新机制是QPA(Qt平台抽象),QPA使得Qt对不同平台的支持变得更加灵活,当需要支持一个新平台时,只需为该平台编写一个QPA插件。
二、QWS(Qt Window System)介绍
QWS(Qt Windows System)是QT自行开发的窗口系统,体系结构类似X Windows,是一个C/S结构,由QWS Server在物理设备上显示,由QWS Client实现界面,两者通过socket进行彼此的通讯。在很多嵌入式系统里,QT程序基本上都是用QWS来实现,这样保证程序的可移植性。
另外在运行QT程序时添加-qws参数,表示这个程序时QWS Server,否则是QWS Client。任何一个基于QT的application都可以做QWS Server。当然QWS Server一定先于QWS Client启动,否则QWS Client将启动失败。在实际应用中一般会指定某个特殊的application做QWS Server,这个application一般还会管理一些其它的系统资源。
QWS Server管理机制:QWS Server是一个server socket,QWS Client是一个client socket。QWS Client启动时会主动向QWS Server的server socket建立连接。而后就QWS Server通过这个socket传递QWS Command和QWS Event来管理QWS Client。
上面都是废话:
很多企业都是使用QT作为gui界面的开发,随着QT版本的升级,发现QT4与QT5有很多的地方兼容性很差,特别是升级QT4兼容QT5的时候,关于嵌入式linuxQWS模块,着实让人头疼,再加上前人留下的代码,几乎重新来了一遍!
我们要使用QWS。。。。。。等等的类,关键是QT5没了,全没了,有的连替代的都没有,那可是让新手很难过的
实在是没有办法了,我们只能调用tslib里面别人写好的校准,至于颜色需要自己实现,那就简单多了,不过还是要研究一下校准的原理,不然有点棘手。
【qt】QWS和 QPA相关推荐
- Qt5之QWS和QPA
Qt是一个夸平台的库(一直宣称"Qt everywhere"),但是Qt底层不是夸平台的.比如:Qt中Gui部件的核心类QWidget,该类除了qwidget.h 和 qwidge ...
- 解决qt.qpa.plugin: Could not find the Qt platform plugin “xcb“ in ““
目录结构如下,在运行目录下边有plugins目录,plugins目录下边有platforms目录,文件如下. 运行时报错如下. 根据经验,一般是由于库找不到造成的.使用ldd查看可执行程序,发现各个库 ...
- QT程序启动加载流程简介
1. QT应用程序启动加载流程简介 1.1 QWS与QPA启动客户端程序区别 1.1.1 QWS(Qt Window System)介绍 QWS(Qt Windows System)是Q ...
- Qt介绍1---QPA(Qt Platform Abstraction)
Qt是一个夸平台的库(一直宣称"Qt everywhere"),但是Qt底层不是夸平台的.比如:Qt中Gui部件的核心类QWidget,该类除了qwidget.h 和 qwidge ...
- QT--以共享的方式发布应用,QT依赖库
Building Qt as a Shared Library 因为:QT基本上都是采用动态编译的(被安装的OS中的),(如安装包往往都是默认动态编译处理好的动态库),所以我们采用动态连接的方式进行发 ...
- 【Linux开发】【Qt开发】Qt界面键盘、触摸屏、鼠标的响应设置
USB键盘 经过一番搜索,发现对Qt键盘的支持主要关系到两个方面: 1. 键盘类型确定: 4.7以前的Qt版本,如果是PS2圆孔键盘,Qt编译时需加上选项:-qt-kbd-vr41xx(未测试):如果 ...
- Could not load the Qt platform plugin “xcb“ 问题解决
QPA qpa是Qt Platform Abstraction的缩写,qt5引入. 问题原因 qt默认的qpa在linux上是xcb:即 qpa backend: xcb 在编译中,需要安装全部x11 ...
- QT Quick项目简介
在Qt 4中,Qt Quick只是在QGraphicsView之上做了简单的封装,并通过QtScript和JavaScript来为其提供脚本支持.基于QGraphicsView之上的QML在功能上仅 ...
- 学习Qt使用GDI+绘图笔记
GDI+学习笔记 1.GDI+介绍: 2.GDI+的载入与卸载: 3.Qt中GDI+的使用 (1).pro文件设置 (2)widget属性设置 (3)重载painEngine()方法 (4)获取HDC ...
- Qt使用GDI绘图(仅Windows平台)
绘图引擎 Windows环境下二维绘图引擎有多种选择:GDI.GDI+.DirectDraw.Qt/QPainter.Agg.Cairo.skia.Direct2D.Direct3D.OpenGL等. ...
最新文章
- js动态变量名_scss引入其他scss变量,并通过js动态修改scss变量
- 聊一聊跨域,Vue向Django请求数据的一些问题
- 2019华为全联接大会(汇总)
- Silverlight C# 游戏开发:Flyer03大图裁剪,高效动画的艺术
- ORACLE -- ORA-12520
- c语言配电自动化,我是电气工程及其自动化专业的要学C语言吗?
- 团队开发里频繁使用 git rebase 来保持树的整洁好吗?
- 2017长春java平均工资_2016年长春在岗职工社会平均工资出炉:66948元,月平均工资5579元...
- 烽烟通讯2100万限售股将于3月7日疏通流畅上市
- 《ANTLR 4权威指南》——第2章 纵 观 全 局 2.1 从ANTLR元语言开始
- 金蝶K3物料主数据计划策略字段设置
- 【科创人】白山云科技CTO童剑:积极是态度更是方法,怀念4点起床敲代码的日子...
- 通俗理解ROC曲线(Receiver Operating Characteristic Curve)
- 通过网页免费下载音乐(F12)
- Android开发之监听或获取手机短信内容
- JS中的构造函数的含义和用法
- 华为云管理网络2.0,志不止于网络
- 因为计算机中丢失d3dx926.dll,win10系统打开程序提示丢失d3dx9 26.dll的解决方法
- 【20180128】【matlab】均值、标准差、方差、协方差、中值的求解
- WebGL,Cesium以及GeoJSON数据的简单介绍