先看下面的实现例子(读取Qt资源文件main.qml文件并显示到Text控件中):
如果你想深入的美化UI,需要耗费很大的力气,对于目前主流的CSS样式表来讲,美化Winform的界面以及自定义控件是需要耗费更多的时间的。
这个框架是两个挪威人在1995年创建的,发展至今可以说历史相当悠久,稳定性也很有保障。
对于Windows用户来说,提到文本编辑软件,我们第一个想到的就是Notepad++。 Notepad++是一款免费的开源文本编辑软件,支持windows系统、支持中文版。作为文本编辑时比windows自带的记事本更强大,除了适合作为一款轻量型的文本编辑软件,也很适合作为编程使用。notepad++支持多达27种语法高亮,例如:C,C++ ,Java ,C#, XML, HTML, PHP,JS 等。同时notepad还支持多文件,多视窗编辑,保存。它是一个功能强大的实用程序,可在不占用大量存储空间的情况下提供最佳性能。 美中不足的是Notepad++不适用于 Linux 用户。 有没有一种可以跨平台的文本编辑器呢? 今天就给大家推荐一款Notepad++的开源替换工具:NotepadNext。官方定义为:A cross-platform, reimplementation of Notepad++。(Notepad++ 的跨平台重新实现。) 开源项目地址:https://github.com/dail8859/NotepadNext
Chrome浏览器的代码量其实是非常庞大的,要想对其有深入的理解,仅仅编译编译调试调试,是很难深入下去的。让我们还是从其主要部分如多进程管理通信、WebKit、V8、Skia、WinHttp、Sanbox等着手分析其主要流程及数据结构,或许能达到事半功倍的效果,而WebKit是其中非常重要的一部分,是Chrome的核心引擎部分,其他部分都是基于它来集成的,深入了解了WebKit,对Chrome的理解就会迎刃而解,再说WebKit作为一个相对独立的浏览器引擎在Safari、iPhone、Adobe AIR等中都有应用,非常值得大家深入的研究研究。 就像前面的文章所说,WebKit主要包括三个部分WebCore、JavascriptCore、Ports
起因是网友“国王与乞丐”反馈的http://lpl.qq.com/es/live.shtml页面播放不了flash。
这是基于C++(QT框架)设计的网络摄像头项目,本篇文章介绍的网络摄像头项目并不是采用RTMP或者RTSP推流编码的网络摄像头产品,而是采用HTTP协议推送图片流的方式,采用浏览器访问查看摄像头画面。
//step1.创建XMLHTTPRequest对象,对于低版本的IE,需要换一个ActiveXObject对象
截止至2020年8月,Qt的最新版本是5.15.0,但仍有很多资料是基于Qt4,为了避免大家误入歧途,所以写了这篇文章。
Qt Widgets、QML、Qt Quick ... 呃 (⊙﹏⊙) ,简直了,傻傻分不清楚
并不是说web语言不好, 我很喜欢web, 从一开始学习html到后来入坑nodejs可以说web领域给我带来了很多的见识同时还payed my bill, 但是w3c定义的html+css的这样一套GUI解决方案实在有很多坑(即使是mdn维护的ecmascript也有很多不尽如人意的地方), 比如浏览器的兼容地狱问题; CSS不够灵活; DOM的臃肿程度等等地方.
自从研究Qt编写自定义控件以来,一发不可收拾,越多越多人有类似的需求找我定制控件,陆陆续续写了上百个控件,目前已超过150个,于是逐渐衍生了另外一个需求,提供一个控件属性设计器,类似QtDesigner一样,可以方便的拖曳控件,改变属性,立即应用,并导出到文件方便下次直接加载,这个设计器有点像组态中的一个雏形,提供了基本的加载控件,导入导出数据,数据源绑定等。
Qt 6.0 已在12月8日发布了。Qt 6.0是下一代Qt的起点。但是令人遗憾的是它的功能尚未达到Qt 5.15的高度,但我们将在未来几个月内填补空白。
一、介绍 使用Qt库开发的应用程序,一般有两种发布方式: (1)静态编译发布。这种方式使得程序在编译的时候会将Qt核心库全部编译到一个可执行文件中。其优势是简单单一,所有的依赖库都集中在一起,其缺点也很明显,可执行程序体量较大,光Qt核心库加起来就得十多兆。 (2)制作安装包发布。这种方式的原理也简单,就是将可执行程序和其依赖的库文件一起打包压缩,制作成安装包发布。制作安装包的工具挺多,今天要说的是Qt官方的安装包制作框架Qt installer framework.这个框架由Qt官方出品,广泛应用
Qt 5 已经临近发布,其最大的特点就是模块化。将原来庞大的模块更细分为不同的部分,同时,一个大版本的升级,当然少不了添加、删除各个功能类。文本简单介绍 Qt5 的特性,其具体内容来自 Qt5 官方 Wiki 的介绍 。 前面说过,Qt5 最大的特性在于模块化。这么多的模块,Qt5 统称为 Qt Essentials。下面就来看看这些模块究竟是什么吧!注意,有些模块没有在这里列出,例如 SQL 等。请在 这里 查看完整的 Qt5 模块列表。 Qt Core Qt Core 类似于 Qt4 中的 QtCore
【CentOS环境】 http://centos-packages.com/7m
能够导出控件布局和属性设置数据到xml文件或者其他文件,也是一个非常实用的功能,类似于QtDesigner中把页面设计好以后生成的.ui结尾的文件,其实就是xml文件,按照约定的规则存储好控件名称和属性名称及对应的属性值,然后打开的时候按照这个规则取出来就行了。每个控件还有固定的几个数据需要存储,比如XY轴和对应的宽度高度,然后在xml数据文件的最开始还可以存储整个画布的宽度高度以便其他用途。导出到xml格式,是为了方便解析,毕竟xml数据格式的解析,各种语言平台都有,而且都是非常成熟快速的。其实还可以考虑存储到数据库,这样就更加强大了,能够存储的东西更多,可以干的事情更多。
上一篇文章负责把设计好的控件数据导出到了xml文件,本偏文章负责把导出的xml数据文件导入,然后在画布上自动生成对应的控件,Qt内置的xml数据解析功能,非常强大,都封装在QtXml组件中,Qt有个好处就是,封装了众多的各大操作系统平台的功能,尤其是GUI控件,不愧是超大型一站式GUI超市,虽然网络组件不是很强大,但是应付一些基础应用还是绰绰有余的。在导出xml数据的时候,属性列表和值都按照xml的属性存储的而不是子节点,所以在解析的时候需要遍历节点的属性名称和属性值,QDomNamedNodeMap attrs = element.attributes();然后循环挨个取出名称和值即可,QDomNode n = attrs.item(i);QString nodeName = n.nodeName();QString nodeValue = n.nodeValue();
加载插件是整个属性设计器的第一步要打通的功能,插件中的控件都加载不了,后面就别搞别玩下去了没法玩的,要从一个动态库中加载出来控件,肯定需要用到反射机制,以前做.NET开发的时候就觉得反射这个东西相当强大,居然可以读取DLL加载出来控件,现在用Qt,发现Qt也有反射机制,也许这东东可能各大开发语言平台都具备吧,Qt反射对应的类叫QMetaObject,着实强大,其实整个Qt开发框架也是超级强大的,本人自从转为Qt开发为主后,就深深的爱上了她,在其他跨平台的GUI开发框架平台面前,都会被Qt秒成渣,Qt的跨平台性是毋庸置疑的,几十兆的内存存储空间即可运行,尤其是嵌入式linux这种资源相当紧张的情况下,Qt的性能发挥到极致。
以表格方式列出支持那些类型。 Qml类型与Qt类型对照表 Qml类型 Qt类型 bool bool int unsigned int, int double double real float, qreal string QString url QUrl color QColor font QFont date QDateTime point QPoint, QPointF size QSize, QSizeF rect QRect, QRectF matrix4x4 QMatrix4x4 quaterni
win10下ROS2,更新并不快,要点体会: 功能包不全 节点启动速度明显比Linux慢 闪退现象多 但能用……真的能用…… 详细过程如下,仅供参考 ********************************************************************** ** Visual Studio 2019 Developer Command Prompt v16.9.3 ** Copyright (c) 2021 Microsoft Corporation ***********
Qt API是基于C++实现的,并且提供了额外的特性来简化跨平台开发。整理了一些第三方语言绑定库有Python, Go, Node.js等语言。但是只有Python语言绑定库是由Qt官方维护。快来看看有没有你熟悉的语言吧。 1.Qt官方语言绑定库 序号 语言绑定库 1 PySide2(官方维护) 介绍:使用Qt为Python创建用户界面。Qt for Python是一个项目,它提供了一组官方的Python绑定(PySide2),这些绑定将增强您的Python应用程序。PySide2模块的第一个官方版本现在
http://php.net/manual/en/function.mime-content-type.php
一:源起 1.何为CB/S的应用程序 C/S结构的应用程序,是客户端/服务端形式的应用程序,这种应用程序要在客户电脑上安装一个程序,客户使用这个程序与服务端通信,完成一定的操作。 B/S结构的应用程序,是浏览器/服务端形式的应用程序,这种应用程序不用在客户端部署任何东西,客户只需要通过浏览器与服务端通信,来完成一定的操作。 两种类型的程序优缺点对比: 对比内容 C/S结构的应用程序 B/S结构的应用程序 部署 较困难 方便 升级
数据源是组态软件的核心灵魂,少了数据源,组态就是个花架子没卵用,一般数据源有三种方式获取,串口、网络、数据库,至于数据规则是什么,这个用户自己指定,本设计器全部采用第一个字节作为数据来演示。
当你的产品决定使用C++进行Windows客户端开发时,也许QT是非常适合您产品的C++开发框架,框架选型时不容错过。其跨平台、功能丰富、文档齐全,稳定、已广泛应用于许多产品。
上一篇文章把插件加载好了,并且把插件中的所有控件都显示到了列表框中,这次要做的就是实现拖曳控件的功能,用户选择一个控件拖曳到画布上,松开,在松开位置处自动实例化该控件,这个需要用到dropEvent和dragEnterEvent事件,重新实现这两个事件,对拖曳的对象进行过滤并调用函数实例化该控件,在实例化该控件的同时实例化控件跟随控件以便拉伸调整大小和位置。这里需要注意的是dragEnterEvent是必须的,很多人以为拖曳只要实现dropEvent就可以了,其实不行的,没有效果的,需要先dragEnterEvent来过滤好了执行event->accept()才行,不然根本没有效果,很多人尤其是初学者都挂在这里,我就是在这里摔了一跤,好疼!
折腾来折腾去,我打算做一个卡片记忆软件,用来记忆面试题、知识点等。很多东西看了就忘了,我想做一个软件来帮助我记忆。这个软件的功能就是每天给我推送一些卡片,我看了就可以记住,然后就可以刷题了。
在上一篇文章中就提到过,使用qtpropertybrowser来加载属性,对应加载到的属性是英文的,也就是控件类中Q_PROPERTY描述的变量名称,如何变成中文或者其他语言显示呢?这个就需要研究qtpropertybrowser的源码了,通过研究发现,在QtObjectControllerPrivate类中负责对控件的属性名称进行遍历,然后发送到QtVariantPropertyManager进行统一的管理,那只要将这里的属性名称进行映射就行了,对应的英文到中文或者其他语言都可以,甚至枚举值的下拉框也可以在这里换成中文的。曾经想过用翻译的机制,后面发现路很漫长,而且最终还是需要映射转换,看过QtDesigner的源码,里边最终也是将翻译文件中的对应项转换成中文的。
安装程序生成工具就是将应用程序和依赖的文件打包到一个可执行的安装程序种,可以简化用户的安装流程和体验,但开发的软件依赖和配置过于繁杂的时候,制作一个安装包就特别必要,所以需要简单学习一下安装程序生成工具,以下是常见的安装程序生成工具:
之前就提过,Qt的属性机制强大到爆,这次的动态属性功能就是要让他爆,很难想象只要一行代码即可widget->setProperty("value", value);没错就这么简单,调用弱属性机制,可以直接控制控件中的所有属性,设计这个机制的人绝对是天才,直接跪了。至于具体底层是怎么实现的,这个可以先不管,也没有太多精力再去研究Qt的源码了,那个源码非常庞大,研究源码的时候最快的办法是搜索直接定位对应文件。本设计器除了提供文本框输入值进行动态改变控件属性以外,还提供了了滑动条、随机模拟数据、串口采集数据、网络采集数据、数据库采集数据等多种方式获取数据源。
labelImg github:https://github.com/tzutalin/labelImg exe下载:https://tzutalin.github.io/labelImg/
浏览器直接加载本地网页的时候,如果网页涉及到加载本地资源(如图片),会出现跨域的问题。Qt的Qt WebEngine模块基于Chromium项目,遇到这样的情况也会出现跨域的问题。
Markdown编辑器演示了如何使用QWebChannel和JavaScript库为自定义标记语言提供富文本预览工具。
原英文文档:http://qt-project.org/doc/qt-5/qmake-project-files.html 创建项目文件 项目文件包含qmake构建你的应用程序,库文件,或插件需要的所有信息。通常,你会在项目文件里使用一系列的声明指定资源,但是对简单程序构造的支持,允许你为不同的平台或环境描述不同的构建过程。 项目文件元素 qmake使用的项目文件格式可以支持简单和复杂的构建系统使用。简的项目文件使用简单的声明样式,定义标准的变量,用于指出项目中使用的头文件和源文件
使用Python开发图形界面的软件其实并不多,相对于GUI界面,可能Web方式的应用更受人欢迎。但对于像我一样对其他编程语言比如C#或WPF并不熟悉的人来说,未必不是一个好的工具。
在PyQt中编写UI界面可以直接通过代码来实现,也可以通过Qt Designer来完成。Qt Designer的设计符合MVC的架构,其实现了视图和逻辑的分离,从而实现了开发的便捷。Qt Designer中的操作方式十分灵活,其通过拖拽的方式放置控件可以随时查看控件效果。Qt Designer生成的.ui文件(实质上是XML格式的文件)也可以通过pyuic5工具转换成.py文件。 Qt Designer随PyQt5-tools包一起安装,其安装路径在 “Python安装路径\Lib\site-packages\pyqt5-tools”下。 若要启动Qt Designer可以直接到上述目录下,双击designer.exe打开Qt Designer;或将上述路径加入环境变量,在命令行输入designer打开;或在PyCharm中将其配置为外部工具打开。 下面以PyCharm为例,讲述PyCharm中Qt Designer的配置方法。
上一篇文章已经打通了数据源之一的串口采集,这次要说的是网络采集,网络通信目前用的最多的是三种,TCP/UDP/HTTP,其中tcp通信又包括了客户端服务端两种,tcp通信才用了多次握手机制不丢包,但是耗费资源多而且需要建立连接。udp通信在大数据量或者网络不稳定的情况下,可能丢包,而且顺序无法保证,但是一个包的数据肯定是正确的,由于占用资源极少而且不需要建立连接,在很多场景中应用也蛮多,我个人用udp以来,也没发现过丢包的情况,可能数据量不够大或者是在局域网内的原因吧,反正用起来还是蛮爽的。http通信目前非常流行,尤其是和服务器之间做数据交互,基本上post请求然后返回一串json数据,解析对应的json数据即可。本次采用的TCP通信作为示例,其他两种可以自行拓展,也很简单的。
0、前言 有不少初学者会问,Python 写的程序看起来好丑啊,只能在那个黑黑的框里运行吗?隔壁家的 JS 好像挺好看的,还能有酷炫效果呢…… 其实呢,术业有专攻,Python 擅长的领域在后台服务器、数据处理、科学计算等方面,以及作为一种工具,搞定各种可以自动化的事情。做界面并不是它的优势项目。但即便如此,本可以靠实力的 Python,偏偏也能靠脸走出一片天。 从诞生伊始,就有许多优秀的 GUI 工具集整合到 Python 当中,这些优秀的 GUI 工具集,使得 Python 也可以在图形界面编程领域当中
本文介绍了一种基于Qt的Webkit框架实现的浏览器方案,该方案可以加载和渲染网页,支持JavaScript等脚本语言的解析,实现了对网页的爬取和模拟点击等操作。该方案具有高度可扩展性和可定制性,可以广泛应用于各种不同的应用场景。
上一次和大家聊了聊Qt的三大基类,信号和槽的使用以及重新实现一些事件等话题。如果在学习Qt之前有一定的C语言编程,可能对响应界面操作还会有些不习惯。这次聊一聊Qt的中高级功能。
该示例允许用户加载SVG文件,并使用QGraphicsSvgItem在QGraphicsView中查看它们。基于选定的渲染器,QGraphicsView使用QWidget或QGLWidget作为其视口。还提供了三种渲染模式(native,opengl,image),其中QGraphicsView通过QImage间接绘制。这样就可以测试本机,栅格和OpenGL绘画引擎的绘制准确性和性能。
自动化测试是现代大型软件的必要组成部分。通过使用大量的无人值守的自动化测试算例,达到维护大型软件产品的稳定性的目的。对于可视化软件,建立自动化测试系统难度大,相关资料少,笔者曾经写过关于工程仿真CAE软件的自动化测试文章,参见《自动化测试大型通用工程仿真CAE软件》《快速创建WELSIM的回归测试算例》,《大型工程仿真CAE软件的自动化回归测试》。本文从软件开发角度,讨论如何使用QtTesting快速实现可视化软件的自动化测试系统。
项目地址:LabelImg 下载地址:Windows/Linux 百度云备份:最近几个版本 密码: cnn6
目录导航: 《Qt 第一步 HelloWorld 的第一个程序》 《Qt 第二步 槽与信号(一) 实现点击按钮并弹窗》
数据库作为数据源,在很多组态软件中使用非常多,指定数据库类型,填写好数据库连接信息,指定对应的数据库表和字段,采集间隔,程序按照采集间隔自动采集数据库数据,绑定到界面上的控件赋值显示即可。使用数据库作为数据源,有个非常大的好处就是不用去写额外的通信代码,也与对方的什么语言什么平台无关,不会有扯皮的事情发生,例如通信协议不规范不准确导致解析不对的情况啊,这样就支持任意的语言和平台啦,毕竟有数据库这个中间载体过渡,而且任何语言任何平台都会有数据库,都兼容,所以采用数据库作为数据源不失为一种很好的方案,可以专注于软件功能的持续集成。
QT版本: 5.12.6 (我的程序里主要是QT+OpenCV实现图像处理显示的)
1.首先,感性的认识是,qmake可以利用源文件(包括头文件h,实现文件cpp,qt的ui文件等等)生成各种不同类型的工程,工程需要的Makefile文件,可执行的与不可执行的,这取决于所用的模板(包括app、lib、subdirs、vcapp、vclib)。
为了应对当前HTML格式和js脚本对老人机的不友好,我们需要处理一下某些小说网站,让它回到十几年前的样子,剔除大量CSS和JS,精简HTML标签,这样就能够让老人机快速、友好地看小说了。
领取专属 10元无门槛券
手把手带您无忧上云