一:源起 1.何为CB/S的应用程序 C/S结构的应用程序,是客户端/服务端形式的应用程序,这种应用程序要在客户电脑上安装一个程序,客户使用这个程序与服务端通信,完成一定的操作。 B/S结构的应用程序,是浏览器/服务端形式的应用程序,这种应用程序不用在客户端部署任何东西,客户只需要通过浏览器与服务端通信,来完成一定的操作。 两种类型的程序优缺点对比: 对比内容 C/S结构的应用程序 B/S结构的应用程序 部署 较困难 方便 升级
Markdown编辑器演示了如何使用QWebChannel和JavaScript库为自定义标记语言提供富文本预览工具。
本文介绍了一种基于Qt的Webkit框架实现的浏览器方案,该方案可以加载和渲染网页,支持JavaScript等脚本语言的解析,实现了对网页的爬取和模拟点击等操作。该方案具有高度可扩展性和可定制性,可以广泛应用于各种不同的应用场景。
Qt API是基于C++实现的,并且提供了额外的特性来简化跨平台开发。整理了一些第三方语言绑定库有Python, Go, Node.js等语言。但是只有Python语言绑定库是由Qt官方维护。快来看看有没有你熟悉的语言吧。 1.Qt官方语言绑定库 序号 语言绑定库 1 PySide2(官方维护) 介绍:使用Qt为Python创建用户界面。Qt for Python是一个项目,它提供了一组官方的Python绑定(PySide2),这些绑定将增强您的Python应用程序。PySide2模块的第一个官方版本现在
本人写Qt程序这么多年,比较喜欢支持多个Qt版本,尤其是钟情于支持任意Qt版本+任意系统+任意编译器,这句话说起来简单其实实现起来就不容易了,首先你得有个很多版本的测试环境,起码十几个Qt环境要的吧,四五种操作系统要的吧,还要安装各种VS版本免不了的,毕竟win上除了默认的mingw编译器还有很多人用的是msvc编译器,这么一大堆环境折腾下来,没有个1T硬盘是不够的,而且官网发布Qt版本的速度相当快,最慢半年肯定来一个版本,又得测试了,每次发布一个大的版本,除了常用的windows以外,linux要测试吧,而且现在还多出来一些国产linux系统比如deepin new start UOS之类的,也要试试吧,哎呀好累。
仪表盘在很多汽车和物联网相关的系统中很常用,最直观的其实就是汽车仪表盘,这个以前主要是机械的仪表,现在逐步改成了智能的带屏带操作系统的仪表,这样美观性和拓展性功能性大大增强了,上了操作系统的话,除了基本的仪表指示以外,还可以听歌导航接电话等,这应该也是目前汽车领域发展的一个大趋势,Qt在这方面还单独搞了个3D studio设计的,可以让美工直接设计好效果图,设置一些动画效果之类的,可以说这些年Qt公司也在不断谋求新的发展,探索新的机遇,找到新的增长点和突破口。
用过echart的人都会遇到一个问题,就算是代码中写了window.onresize = echart.resize,也只是横向自适应拉伸填充页面,垂直方向不会变化,除非指定高度才可以,这就比较郁闷了,为何echart本身不会自适应呢?按道理不应该啊,莫非实现起来很困难?好吧先不管这个了,这个问题搜索出来一大堆解决方案,在Qt的浏览器控件中也有这个问题,为了解决这个问题想了两个策略,一种是程序本身检测尺寸变化,然后重新设置高度并载入网页,一种是js函数设置对应的宽高,什么时候执行呢,就是在程序界面尺寸变化的时候,两种办法对比下来,最终选用的后者,因为效果比较好,还是异步执行的,无需重新加载网页,那个每次高度变化了就重新加载网页的办法在早期的作品中用过,看起来好弱弱的。
QT在5.6之前可以webkit浏览器框架访问网页,在之后就去掉了webkit,加入了QWebEngineView框架,但是QWebEngineView只能支持VS编译器,mingw编译器不支持。 在后面的高版本QT里,mingw编译器如果要加载网页可以使用两种方式。
这个基于qmake的项目定义了两个构建目标:qpdf共享库(ppdflib)和pdfviewer基于qpdf库的示例PDF查看器。
WebAssembly是2015年诞生的一项新的技术,在2015年7月,Wasm首次对外公开,并正式开始设计,同年,W3C成立了Wasm社区小组(成员包括Chrome、Edge、Firefox和WebKit),致力于推动Wasm技术的早期发展。
在添加设备点或者区域形状的时候,会考虑是直接静态的方式写入到网页中加载,还是动态js函数异步加载的方式,这个需要根据现场的实际需求来,如果只需要一次加载的话建议静态即可,如果运行期间还需要动态添加的话就采用动态的js函数交互的方法,绝大部分场景都是动态添加,毕竟这个是异步执行的,而且比较灵活,静态的方式写入到网页中加载开起来比较傻,数据都在网页中可以看到了,没有什么保密性可言,在前面两篇文章做行政区划和点聚合的时候,也是两种方法都支持,具体现场怎么方便怎么来。
省市区域图也可以叫省市轮廓图,就是将每个省份、市区的边界区域变成轮廓展示,只是个大概的轮廓,和真是的地图基本一致,毕竟都是一个个点堆起来的,可能会有很小很小的误差,之前做大屏系统中间那个中国地图的时候,客户千方百计交代清楚,千万要注意有九段线,不然在展会上被别人看到如果连九段线都没有的话会被人骂死,可能在部分早期的数据由于不是很完善所以未必有,后期的最新的地图数据都是有的,包括轮廓图数据。
浏览器直接加载本地网页的时候,如果网页涉及到加载本地资源(如图片),会出现跨域的问题。Qt的Qt WebEngine模块基于Chromium项目,遇到这样的情况也会出现跨域的问题。
rootObjects()为空,那么上一句逻辑执行load()意味着未正确执行或未加载完成。
Qt 5 已经临近发布,其最大的特点就是模块化。将原来庞大的模块更细分为不同的部分,同时,一个大版本的升级,当然少不了添加、删除各个功能类。文本简单介绍 Qt5 的特性,其具体内容来自 Qt5 官方 Wiki 的介绍 。 前面说过,Qt5 最大的特性在于模块化。这么多的模块,Qt5 统称为 Qt Essentials。下面就来看看这些模块究竟是什么吧!注意,有些模块没有在这里列出,例如 SQL 等。请在 这里 查看完整的 Qt5 模块列表。 Qt Core Qt Core 类似于 Qt4 中的 QtCore
Qt作为一个超大型的一站式GUI超市开发集成环境,不仅集成了大量的可视化UI组件,还提供了网络库、数据库操作、文件操作等类库,封装的还是相当精彩一步到位,根据个人身边的一些程序员朋友了解,自从用了Qt以来发现越来越喜欢用Qt本身的类来处理,除非一些要求很高的应用场景比如并发网络才需要去使用第三方库,不然就是直接使用Qt封装好的类,用起来非常爽,尤其是类的名称和方法的名称,几乎很自然的就能打出来。
Qt Widgets、QML、Qt Quick ... 呃 (⊙﹏⊙) ,简直了,傻傻分不清楚
xmake 是一个基于 Lua 的轻量级跨平台构建工具,使用 xmake.lua 维护项目构建,相比 makefile/CMakeLists.txt,配置语法更加简洁直观,对新手非常友好,短时间内就能快速入门,能够让用户把更多的精力集中在实际的项目开发上。
XMake是一个基于Lua的轻量级跨平台自动构建工具,支持在各种主流平台上构建项目。
这个框架是两个挪威人在1995年创建的,发展至今可以说历史相当悠久,稳定性也很有保障。
编者按: 这个世界不缺工程师,但是缺大师。如果在Qt里写个app,传统做法,需要熟悉API,熟悉C++,熟悉Qt本身的实现,同时还要熟悉编程环境。 现在出现了一种类似于脚本Javascript的语言,利用它,我们可以少编写一些程序逻辑。可不,最近我就利用它开发出了个浏览器。大家都没有。 欢迎来到声明式UI语言QML的世界.在本入门教程中,我们使用QML创建一个简单的文本编辑器.阅读这个教程后,就可以使用QML和Qt C++开发应用程序了. 安装 首先需要安装包含Qt Quick的Qt最新版本,现在是Qt4.
起因是网友“国王与乞丐”反馈的http://lpl.qq.com/es/live.shtml页面播放不了flash。
QT国际化支持: https://blog.csdn.net/xiaolong1126626497/article/details/113970945
我是2010年开始从事的Android开发,当时会Android和iOS开发的很少,也不火,所有人都在“摸着河底过河”,项目更没有第三方框架一说,大都是自己写的,不像现在各种的框架满天飞。随着移动开发的发展,互联网公司也是层出不穷,有些公司迫于竞争,想要更迅速的更省成本的进行开发,就不再满足Android端一套代码,iOS端一套代码。与此同时,其他技术领域和各大公司也都觊觎着这份大蛋糕,纷纷推出相关的技术,这样跨平台技术应运而生,并且开始在公司中生根发芽。 Android和iOS生态太大了,我们可以把它们比作第一级生态,想要颠覆这两个系统的曾经出现过,但都失败了,因此建立次级生态是最稳妥的策略,Android平台更加开放,因此次级生态的中心就是Android,次生态的形式多种多样,比如在Android系统的基础上魔改建立自己的生态,再或者推出各种跨平台技术建立生态。跨平台技术产生的框架实在太多了,很多还没等我们去学去了解,它们就没落了,成为了跨平台技术的发展的一个过度产物。跨平台技术的产物是不靠谱还是趋势,我想读完本篇文章你会有自己的理解。 跨平台技术的分类没有标准的答案,这里把它们分类为5种,分别Web App、Hybrid App、语言编译转换、原生渲染、自绘UI。下面分别介绍它们。
在写爬虫的时候,关于JavaScript的解析问题,我在网上找到的一个解决方案是使用ghost.py这个模块,他是一个基于webkit封装的一个客户端,可以用来解析动态页面。它的使用非常简单,它从2.x版本开始,变化就有点大了,在这我主要是针对他的1.0版本。 首先在GitHub上克隆它,然后在对应的文件中执行python setup.py install命令,这样就可以安装了,注意在这不要直接使用pip,使用pip会默认安装2.x版本。 安装完成后,可以编写如下代码来加载一个网页:
自从研究Qt编写自定义控件以来,一发不可收拾,越多越多人有类似的需求找我定制控件,陆陆续续写了上百个控件,目前已超过150个,于是逐渐衍生了另外一个需求,提供一个控件属性设计器,类似QtDesigner一样,可以方便的拖曳控件,改变属性,立即应用,并导出到文件方便下次直接加载,这个设计器有点像组态中的一个雏形,提供了基本的加载控件,导入导出数据,数据源绑定等。
Qt Assistant是可配置且可重新发布的文档阅读器,可以方便地进行定制并与Qt应用程序一起重新发布。Qt Assistant已经被整合进Qt Creator,就是前面介绍的Qt帮助。
折腾来折腾去,我打算做一个卡片记忆软件,用来记忆面试题、知识点等。很多东西看了就忘了,我想做一个软件来帮助我记忆。这个软件的功能就是每天给我推送一些卡片,我看了就可以记住,然后就可以刷题了。
加载插件是整个属性设计器的第一步要打通的功能,插件中的控件都加载不了,后面就别搞别玩下去了没法玩的,要从一个动态库中加载出来控件,肯定需要用到反射机制,以前做.NET开发的时候就觉得反射这个东西相当强大,居然可以读取DLL加载出来控件,现在用Qt,发现Qt也有反射机制,也许这东东可能各大开发语言平台都具备吧,Qt反射对应的类叫QMetaObject,着实强大,其实整个Qt开发框架也是超级强大的,本人自从转为Qt开发为主后,就深深的爱上了她,在其他跨平台的GUI开发框架平台面前,都会被Qt秒成渣,Qt的跨平台性是毋庸置疑的,几十兆的内存存储空间即可运行,尤其是嵌入式linux这种资源相当紧张的情况下,Qt的性能发挥到极致。
如果你想深入的美化UI,需要耗费很大的力气,对于目前主流的CSS样式表来讲,美化Winform的界面以及自定义控件是需要耗费更多的时间的。
Qt中的插件是存储在共享库中的类,可以在运行时由QPluginLoader加载。在Qt中创建插件时,它们要么扩展Qt应用程序,要么扩展Qt本身。编写可扩展Qt本身的插件是通过继承插件基类之一,从该类重新实现功能并添加宏来实现的。在此示例中,我们通过添加新的GUI外观(即,使新的QStyle)来扩展Qt 。插件概述文档中对插件进行了高级介绍。
Qt支持任何标准图像格式,包括PNG和JPEG等位图格式,以及SVG等矢量图形格式。与位图图像相比,渲染SVG图像很慢。
❝该例子演示用户界面是在运行时从程序资源中加载,并实现文本查找的功能。 ❞ 程序中的.ui界面文件都是使用QUiLoader动态加载的。 动态加载.ui文件 通过使用QUiLoad动态加载te
Qt Creator配置Qt Designer命令配置Qt Designer-Current命令配置PyUIC命令配置PyRcc5命令为什么要使用资源文件?配置PyInstaller命令
概念介绍 无限加载与瀑布流的结合在Web前端开发中的效果非常新颖,对于网页内容具备较好的表现形式。无限加载并没有一次性将内容全部加载进来,而是通过监听滚动条事件来刷新内容的。当用户往下拖动
意思是,让JavaScript文件作为一个合法的网页入口(而不是html文件)。话题地址在这:
根据问题描述,虽然能够找到但是不能加载Qt平台插件“xcb”,虽然接下来又说重新安装可能能够解决,这个可能的话,还是尽量作为最下的选择吧。
Splash是一个javascript渲染服务。它是一个带有HTTP API的轻量级Web浏览器,使用Twisted和QT5在Python 3中实现。QT反应器用于使服务完全异步,允许通过QT主循环利用webkit并发。 一些Splash功能:
QWebEngineView 是QT5.4版本加入的新浏览器引擎,用于编辑、查看web内容。
现在很多视觉设计最终给出的字体可能并不是所有系统都安装过的,所以项目中可能需要单独把字体文件打包进去在程序运行的时候加载。Qt QML 有多种方式加载一个自定义字体,本文将介绍所有我知道的方式,大家根据自己的需要选择使用任意一种即可。
Qt 提供了一整套的翻译引擎,讲你需要翻译的内容使用 qsTr(“”) 包括起来就可以通过工具来扫描这些待翻译的内容。我们用 Qt 创建的 Empty 项目来做演示,创建完成后,main.qml 中只有如下代码:
QT PySide2 是一个用于 Python 编程语言的开源框架,它提供了与 QT C++ 框架的绑定,使得开发者可以使用 Python 进行跨平台的图形用户界面 (GUI) 应用程序开发。QT 是一个功能强大的跨平台应用程序开发框架,具有丰富的 GUI 组件和工具集,以及广泛的应用领域。
在上一篇文章中就提到过,使用qtpropertybrowser来加载属性,对应加载到的属性是英文的,也就是控件类中Q_PROPERTY描述的变量名称,如何变成中文或者其他语言显示呢?这个就需要研究qtpropertybrowser的源码了,通过研究发现,在QtObjectControllerPrivate类中负责对控件的属性名称进行遍历,然后发送到QtVariantPropertyManager进行统一的管理,那只要将这里的属性名称进行映射就行了,对应的英文到中文或者其他语言都可以,甚至枚举值的下拉框也可以在这里换成中文的。曾经想过用翻译的机制,后面发现路很漫长,而且最终还是需要映射转换,看过QtDesigner的源码,里边最终也是将翻译文件中的对应项转换成中文的。
离线地图的核心其实就是拿到这些瓦片地图文件,并不是离线地图的代码怎么写,其实离线地图的网页代码和在线地图的网页代码几乎一致的,主要就是将对应的依赖的js文件从在线的地址改成本地的地址,然后可能多几个特殊的js文件用来本地交互,离线地图完全具备在线地图的大部分功能,离线地图有个好处就是可以离线使用,根本不需要联网,而且也不需要什么秘钥,你只要搞到那些瓦片地图文件就随便你怎么摩擦了。其实在线地图也是通过读取服务器上的离线地图文件加载到网页中的,你在快速的缩放和拖动地图的时候可以看到缝隙和空白,估计此刻就是在从服务器拉取瓦片地图文件来加载,而且这个服务器上的瓦片地图永远是最新的最完整的。
Qt工程管理 个人比较偏爱于使用CMake来管理C++工程,因为只要编写一个CMakeLists.txt文件,就可以在Windows和Mac上生成各自的IDE工程。在Windows上, CMake自然是生成Visual Studio工程文件了(新版Visual Studio貌似能直接倒入CMake工程了);Mac上生成XCode工程即可。开发Qt应用程序的时候,虽然有Qt Creator可以使用,甚至Qt Creator还可以直接导入CMake工程,但是其调试和错误提示功能实在太过寒碜,导致调试过程中各种郁
https://download.qt.io/official_releases/QtForPython/
Translate_CN.ts 汉语>汉语(一般不用改,我们使用的是汉语,只需要改汉译英的)
摘要 在我之前的文章中,我使用了不同编程语言开发了如下许多上位机。 序号内容语言1《如何定制自己的HID调试助手》C#2《C# 串口上位机开发》C#3《Qt 串口上位机开发》QT4《教你动手写UDP协议栈 - OTA上位机》python5《基于RT-THREAD nano的平衡车--上位机软件》QT6《R-Plan上位机》QT7《BearPi TCP》QT 你会发现很零散,集成度,而且久而久之就没有维护了。今天我又来解锁一种开发工具的神器--VScode插件。 其实vscode现在已经很多大厂先后开发出他们
上次我们是直接在Qt 自带的例子基础上做的修改,直接运行。我们的插件需要继承Qt 的Style插件,之后重新实现自己想要实现的部分。在主程序中直接通过QApplication::setStyle进行调用。
有好几个公众号发文说“微软要放弃Electron了”,实际情况是微软旗下的Teams产品打算把Electron框架换成WebView2而已。接下来我就聊一下这个事情:
领取专属 10元无门槛券
手把手带您无忧上云