这里使用了 highlight.js,它的特点: 支持 196 种语言,242 种样式(绝大多数用不上) 自动语言探测(正确率似乎一般) 支持使用任意 HTML 标记 兼容任意 js 框架 只需要知道它足够牛就OK了。 可以通过 CDN 加速服务器引用: <link href="https://cdn.bootcdn.net/ajax/libs/highlight.js/11.2.0/styles/default.min.css" rel="stylesheet"> <script src="https://cdn.bootcdn.net/ajax/libs/highlight.js/11.2.0/highlight.min.js"></script> 如果需要裁剪定制一些语言,可以直接在官网下载页面(https://highlightjs.org/download/)操作: 下载后将 highlight.min.js 和样式表 default.min.css (也可以换用其他样式表)上传到服务...
2021年11月
嵌入式、物联网技术交流分享在 C++ Builder 中使位图背景透明的方法
本文提供一种使用 Graphics::TBitmap 的方法使位图背景透明化,直接上代码: Graphics::TBitmap *bm = new Graphics::TBitmap; bm->Transparent = true; bm->TransparentMode = tmFixed; bm->TransparentColor = clWhite; MForm->ImageList1->GetBitmap(2, bm); this->Canvas->Draw(10, 100, bm); delete bm; TransparentMode:设置透明模式 tmAuto:使用图片左下角像素的颜色作为透明颜色 tmFixed:使用 TransparentColor 属性指定的颜色作为透明...
Qt JSON 库
Qt 的 JSON 库由几种对象和相应的头文件组成,主要的有: QJsonDocument 该类用于操作 JSON 文档。 从文件到文档对象实例: QJsonDocument jDoc(QJsonDocument::fromJson(file.readAll())) 此外还有 fromBinaryData() 或 fromRawData() 方法。 JSON 对象 obj 到 文档 到文件: QJsonDocument jDoc(obj); file.write(jDoc.toJson(QJsonDocument::Indented)); QJsonObject QJsonObject 是一个重要的类型,它就是 JSON 中的“对象”概念。一个对象就是一个键值对。 使用 insert() 插入一个键值对或覆盖一个已存在的键值对还可以删掉一个键值对, 用 remove() 可以删除一个键值对。 QJsonArray 它是 JSON 数组类,可以存储多个没有键的值(QJsonValue) QJsonValue QJsonValue 也是一个重要的常用类型,它是键值对的值或是数组的值。而值可以是一个键值对,也可以是一个数组,还可以是其它类型: bool(QJsonValue::Bool) double(QJsonValue::Double) string(QJsonValue::String) array(QJsonValue::Array) object(QJsonValue::Object) null(QJsonValue::Null) 要操作一个对象类型的值,要先把值转换成对象副本才可以: QJsonValue.toObject() 所以不能直接修改一个值 ValueA 下面的某个键的值 ValueB,只能将这个值 ValueA 转换成 ObjectA 然后修改 Object 的某个键的值 ValueB,然后再用对象 ObjectA 覆盖 ValueA(可以用 insert 方法)。如果要修改多层次的某个值,就要采用递归的方法一级一级找到要修改的值,然后用高层次的对象覆盖。这点就比 python 的 json 数据操作麻烦...
QtMqtt 库的使用
QtMqtt 库是官方的 mqtt 库,但是是属于 Qt for Automation 商业套件的。需要下载源码自己编译才能用。 源码:https://github.com/qt/qtmqtt 文档:https://doc.qt.io/QtMQTT/qmqttclient.html 编译成静态库 在 Qt5.15.0_MSVC2019_x64_static\include 创建 QtMqtt 文件夹,将头文件从源码 src 文件夹拷贝过去。 set path=D:\Qt\kits\Qt5.15.0_MSVC2019_x64_static\bin;%path% qmake nmake nmake install nmake docs 使用的时候 pro 文件加 QT += mqtt MQTT Broker 非加密测试: broker:test.mosquitto.org 1883 MQTT Broker 单向向认证测试: broker:test.mosquitto.org 8883 MQTT Broker 双向认证测试: broker:test.mosquitto.org 8884 证书生成与注册 http://test.mosquitto.org/ssl/ 生成私钥: openssl genrsa -out client.key 生成客户端证书: openssl req -out client.csr -key client.key -new 在服务器上添加证书...