Qt5之QWS和QPA
来源:互联网 发布:2017手机淘宝店铺装修 编辑:程序博客网 时间:2024/06/10 03:53
Qt是一个夸平台的库(一直宣称“Qt everywhere”),但是Qt底层不是夸平台的。比如:Qt中Gui部件的核心类QWidget,该类除了qwidget.h 和 qwidget.cpp两个原文件外,还有
kernel/qwidget_mac.mm
kernel/qwidget_qws.cpp
kernel/qwidget_win.cpp
kernel/qwidget_s60.cpp
kernel/qwidget_x11.cpp
kernel/qwidget_wince.cpp
…
这使得将 Qt 移植到一个新的窗口系统变的不太容易。
一、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。
- Qt5之QWS和QPA
- Qt之QWS
- QWS
- QWS
- qws
- 【QT】QPA
- Qt5学习之简介和资料
- QWS Server
- -qws命令
- qws server
- 关于QWS
- QWS Server
- QT5 学习之路16---菜单栏、工具栏和状态栏
- QT5 学习之路25---画刷和画笔
- 尝试Qt PPAPI QPA plugin
- QT5 学习之路07---QT5事件
- qt5之学习QString
- Qt5类之QMargins
- 输入一个5位数,然后将反序输入(12345 输出54321)
- windows下编译caffe报错:error MSB4062: 未能从程序集 E:\NugetPackages\OpenCV.2.4.10\......的解决办法
- oracle创建存储过程及Job
- jquery parent()和parents()的区别
- CSS基础知识
- Qt5之QWS和QPA
- 带你零公式理解神经网络
- LeetCode 129 Sum Root to Leaf Numbers(递归求和)
- 2017年职业生涯小计
- cocos2dx 连连看
- MongoDB常用命令汇总之基本聚合函数。
- SQLite 源码获取、编译与使用
- [IOS APP]南渡记-东藏记-西征记-野葫芦引有声小说
- AtCoder Grand Contest 017 C