![](https://img-blog.csdnimg.cn/20190829113304570.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
QT/QML
深圳市进化图灵智能科技有限公司
官网 turingevo.com
邮箱 wmx@turingevo.com
为社会创造价值,交个朋友,合作共赢。
展开
-
ubuntu下发布应用,ldd脚本代替linuxdeployqt
下载linuxdeployqt 发现运行不起来,glbc版本不匹配。主机环境 ubuntu22.04。原创 2024-07-17 00:12:47 · 30 阅读 · 0 评论 -
Python 与 Qt c++ 程序共享内存,传递图片
这里Python 使用 shared_memory。前面4个字节是 图片with,height,0,0。QT 使用 QSharedMemory。原创 2023-09-22 19:36:53 · 765 阅读 · 1 评论 -
Python 共享内存与 Qt c++ 程序进程之间通信
这里Python 使用 shared_memory。QT 使用 QSharedMemory。原创 2023-09-21 16:30:44 · 964 阅读 · 0 评论 -
c++ /QT 加锁的懒汉式单例
【代码】c++ /QT 加锁的懒汉式单例。原创 2023-07-11 16:48:47 · 522 阅读 · 0 评论 -
QT 插件中使用信号槽
1 先定义接口,在接口里面定义返回的对象基类 Base指针。3 加载插件获得 Base指针 连接对应 信号槽或者函数。2 自定义插件,实现返回Base的派生类指针。原创 2023-06-16 15:06:50 · 220 阅读 · 0 评论 -
Qt 读写 execel,使用 QtXlsxWriter
源码examples 下很多用例参考。在 pro 中使用模块。原创 2023-03-28 11:55:37 · 539 阅读 · 0 评论 -
自定义qtquick 插件模块,支持qmldesigner
wmxModulePlugin.hWmxModulePlugin自定义 MyControl.qmlImg.qrcQml.qrcqmldir编译后在 路径下:生成以下文件libwmxModule.so 、 qmldir在此目录打开终端输入命令plugin.qmltypes生成 qmldesigner 支持在模块路径 下:新建目录 designer 、 qml把 放到 qml目录下,这样qmldesigner 根据 qmldir 声明找到此文件,支原创 2022-11-26 10:13:04 · 1313 阅读 · 1 评论 -
QT Designer 插件 customwidgetplugin
新建工程,在pro中引用插件,并且包含头文件。原创 2022-11-23 00:27:39 · 578 阅读 · 0 评论 -
qtchooser 配置和使用多个Qt版本
4、qt4、qt4-x86_64-linux-gnu 相同。5、qt5、qt5-x86_64-linux-gnu相同。可以看到 qtchooser 默认配置路径是。系统 : ubuntu 20.04 LTS。所以我们删掉重复的配置文件。安装配置文件在用户目录。原创 2022-11-19 21:50:21 · 3683 阅读 · 0 评论 -
win系统发布Qt程序——应用程序无法正常启动(0xc000007b)
比如我用 mingw73_64 构建的程序,就用 mingw73_64/bin/windeployqt.exe 发布程序。在 C:\Qt\Qt5.12.12\Tools\mingw730_64\bin 打开powershell。查看其下dll是x86 还是 x64 ,我用x64所以x86的dll都要换成x64版本。其中 D:\workspace\app\ 是我程序发布目录。找到这个库的x64版本复制到程序目录,再次运行解决问题。请使用对应版本的windeployqt。比如我电脑上安装有不同构建工具的QT。原创 2022-10-13 15:00:28 · 2146 阅读 · 0 评论 -
Qt mysql客户端,测试
回车,然后输入密码,进入mysql。打开终端,登录mysql。原创 2022-09-17 18:57:16 · 321 阅读 · 0 评论 -
qt creater snippets 技巧
工具->选项->文本编辑器->snippets原创 2022-07-08 10:41:56 · 154 阅读 · 0 评论 -
生成 qch 帮助文档
生成 qch 帮助文档安装 doxygensudo apt install doxygensudo apt install doxygen-gui在工程新建doc目录使用doxygen 或者 doxywizard 生成 html文档doxywizard 是gui界面在doc 目录中创建 myhelp.qhp<?xml version="1.0" encoding="UTF-8"?><QtHelpProject version="1.0"> <namesp原创 2022-04-15 18:08:09 · 698 阅读 · 0 评论 -
QT无边框可拖动缩放窗口 MainWindow ,添加标题菜单,子控件
QT无边框可拖动缩放窗口 MainWindow ,添加标题菜单,子控件ui文件<?xml version="1.0" encoding="UTF-8"?><ui version="4.0"> <class>mainWindow</class> <widget class="QWidget" name="mainWindow"> <property name="geometry"> <rect>原创 2021-12-21 16:14:40 · 1206 阅读 · 0 评论 -
QT无边框可拖动缩放窗口 基类 FramelessWidget
QT无边框可拖动缩放窗口 FramelessWidgetframelesswidget.h#ifndef FRAMELESSWIDGET_H#define FRAMELESSWIDGET_H#include <QObject>#include <QWidget>#include <QMouseEvent>#include <QKeyEvent>class FramelessWidget : public QWidget{ Q_OB原创 2021-12-15 16:13:37 · 1561 阅读 · 0 评论 -
QMenuBar 默认的扩展qt_menubar_ext_button
QMenuBar 默认的扩展界面查找主窗口的子对象template<class MAIN, class SUB>void FindChildren(MAIN* obj){ QList<SUB*> objs = obj->findChildren<SUB *>(QString(), Qt::FindChildrenRecursively); qDebug()<<__FUNCTION__<<" objs.count "<原创 2021-12-09 16:52:51 · 404 阅读 · 0 评论 -
QTableWidget 函数 itemAt(const QPoint & pos)
QTableWidget 函数 itemAt(const QPoint & pos)pos 是相对于 QTableWidget 可视区域的坐标,是局部坐标系!!!例如 QWidget 子控件包含 QTableWidget写 QWidget 的 contextMenuEvent ,触发菜单event->globalPos() 是全局的坐标,相对于电脑屏幕左上角然后再映射到 ui->tableWidget->viewport() 一定是 viewport() 区域,不包原创 2021-09-07 10:55:06 · 1491 阅读 · 0 评论 -
使用自定义qml扩展插件
使用自定义qml扩展插件proTARGET = chapter6-pluginsQT += qml quick# Ensure that the application will see the import path for the Charts module:# * On Windows, do not build into a debug/release subdirectory.# * On OS X, add the plugin files into the bundle.原创 2021-09-04 16:45:18 · 198 阅读 · 0 评论 -
自定义qml扩展插件(qml 插件)
自定义qml扩展插件(qml 插件)proTEMPLATE = libCONFIG += pluginQT += qmlDESTDIR = $$_PRO_FILE_PWD_/imports/TimeExampleTARGET = qmlqtimeexamplepluginSOURCES += plugin.cpppluginfiles.files += \ imports/TimeExample/qmldir \ imports/TimeExample/center.原创 2021-09-04 16:29:55 · 646 阅读 · 1 评论 -
自定义qml扩展插件(C++ 插件)
自定义qml扩展插件(C++ 插件)proTEMPLATE = libCONFIG += pluginQT += qml quickDESTDIR = ../ChartsTARGET = $$qtLibraryTarget(chartsplugin)HEADERS += piechart.h \ pieslice.h \ chartsplugin.hSOURCES += piechart.cpp \ pieslice.c原创 2021-09-04 16:21:12 · 419 阅读 · 0 评论 -
QCustomPlot 添加 平滑曲线
平滑曲线类 smoothCurveGenerator.h#ifndef SMOOTHCURVEGENERATOR_H#define SMOOTHCURVEGENERATOR_H#include <QPainterPath>#include <QVector>class SmoothCurveGenerator{protected: static QPainterPath generateSmoothCurveImp(const QVector<QPoi转载 2021-03-16 14:04:02 · 1386 阅读 · 0 评论 -
QByteArray 使用指针解析buff,高效!!!
QByteArray 使用指针解析buff,高效main.cppCRC16-modbus.hmain.cpp#include <QCoreApplication>#include <QDebug>#include "CRC16-modbus.h"int main(int argc, char *argv[]){ QCoreApplication a(argc, argv); QByteArray data; data = QByteArray原创 2021-05-15 17:12:51 · 1381 阅读 · 0 评论 -
linux下 QT qmake 使用 pkg-config 链接库
linux下 QT qmake 使用 pkg-config 链接库pkg-config 链接库 可以解决 漏掉不必要库的连接,方便全面首先确保 库的pc文件路径已添加 到 环境变量PKG_CONFIG_PATH比如我的 ffmpeg 库安装在~/ffmpeg_build下面命令行gedit .bashrc 在末尾添加### ffmpeg pkg-configexport FFMPEG_CONFIG_PATH=/home/wmx/ffmpeg_build/lib/pkgconfig原创 2021-08-29 13:11:38 · 1787 阅读 · 0 评论 -
linux下 qmake 生成 包含 pkg-config 的 pc文件 库
linux下 qmake 生成 包含 pkg-config 的 pc文件 库test.pro## In qmake we have to remove qt explicitly if we don't want to link against itCONFIG -= qt## install prefixPREFIX = $$_PRO_FILE_PWD_/app## We will use the standard lib template of qmakeTEMPLATE = lib原创 2021-08-29 09:46:39 · 441 阅读 · 0 评论 -
Opengl 渲染YUYV(YUV422)图像
Opengl 渲染YUYV(YUV422)图像//YUYV数据格式: 1个Y代表一个像素,YUYV代表2个像素,4字节,[所以2字节/每像素]//w=width //图片宽度//h=high //图片高度//p=wh //图片像素总数//c=p2 //数组总长度//d=(w*h)/2 //一半像素————————————————版权声明:本文为CSDN博主「科技ing」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。原文链接:h原创 2021-08-27 18:40:43 · 2495 阅读 · 8 评论 -
deployqt QT常见错误
deployqt 常见错误设程序发布目录 /appdefaultServiceProvider::requestService(): no service found for - “org.qt-project.qt.camera”在 /app/plugins/目录下缺少mediaservice复制qt安装目录下的plugins目录中的mediaservice到/app/plugins//app目录结构/app/xx.exe/app/plugins//app/QtQml//app/Qt原创 2021-08-26 15:31:56 · 447 阅读 · 0 评论 -
c++传递视频流到qml 的 VideoOutput
c++传递视频流到qml 的 VideoOutputQT官方文档里面介绍的方法 Video Overview继承QObject,实现属性, 具有可读写videoSurface属性Q_PROPERTY(QAbstractVideoSurface *videoSurface READ videoSurface WRITE setVideoSurface)举例:FrameProvider.h#ifndef FRAMEPRODER_H#define FRAMEPRODER_H#include原创 2021-08-25 16:59:57 · 2452 阅读 · 1 评论 -
自定义 QAbstractVideoSurface 添加视频水印
自定义 QAbstractVideoSurface 添加视频水印头文件#ifndef MYVIDEOSURFACE_H#define MYVIDEOSURFACE_H#include <QAbstractVideoSurface>#include <QObject>class MyVideoSurface : public QAbstractVideoSurface{ Q_OBJECTpublic: MyVideoSurface(); ~M原创 2021-08-24 21:20:17 · 649 阅读 · 0 评论 -
Qt中的隐式共享(Implicit Sharing)
Qt中的隐式共享(Implicit Sharing)Qt中的许多c++类使用隐式数据共享来最大化资源使用和最小化复制。隐式共享类作为参数传递时既安全又有效,因为只传递一个指向数据的指针,而且只有当函数写入数据时才会复制数据,即写时复制。1 共享类由指向共享数据块的指针组成,共享数据块包含引用计数和数据.2 当创建共享对象时,它将引用计数设置为1。每当有新对象引用共享数据时,引用计数增加,当对象解除引用共享数据时,引用计数减少。当引用计数为零时,共享数据将被删除.3 在处理共享对象时,有两种复制对原创 2021-08-25 14:53:23 · 685 阅读 · 0 评论 -
qml自定义分隔Spliter(功能类似QSplitter)
qml自定义分隔Spliter(功能类似QSplitter)import QtQuick 2.12Item { id:root width: 800 height: 600 //动态分隔 property var spliterPosPencent: 0.3 property var spliterPos : spliterPosPencent * root.width Rectangle{ id:leftRect原创 2021-08-21 12:21:30 · 1339 阅读 · 0 评论 -
QT 通用协议解析框架(三)
基类#ifndef WORKTHREAD_H#define WORKTHREAD_H#include <QWaitCondition>#include <QMutexLocker>#include <QMutex>#include <QThread>#include <QDebug>#include <atomic>/*! * \brief <WORKER 模板参数> 需要继承的基类 *原创 2021-07-03 16:01:58 · 612 阅读 · 0 评论 -
qt信号槽传递结构体到qml ,qml解析结构体
qt信号槽传递结构体到qmlcommon.h#ifndef COMMON_H#define COMMON_H#include <QMetaType>// gcc clang#pragma pack(1)typedef struct{ int leftId; int rightId; int lWGrade; int lWState; int rWGrade; int rWState;}CarWarnst;#pragma原创 2021-06-11 15:42:00 · 1779 阅读 · 1 评论 -
QT 通用协议解析框架(二)
QT 通用协议解析框架(二)外部自定义条件唤醒线程外部自定义解析协议函数workThread.h#ifndef WORKTHREAD_H#define WORKTHREAD_H#include <QWaitCondition>#include <QMutexLocker>#include <QMutex>#include <QThread>#include <QDebug>/*! * \brief <WORKE原创 2021-05-24 15:45:15 · 353 阅读 · 0 评论 -
QT 通用协议解析框架(一)
QT 通用协议解析框架次线程解析外部传入自定义解析函数条件等待唤醒protocolThread.h#ifndef PROTOCOLTHREAD_H#define PROTOCOLTHREAD_H#include <QWaitCondition>#include <QMutexLocker>#include <QMutex>#include <QThread>#include <QDebug>/*! * \brief原创 2021-05-20 15:44:08 · 633 阅读 · 1 评论 -
QtConcurrent 使用,多线程同步耗时,qdebug耗时
源码#define THREAD_Synchronization 0不使用线程同步,可以看到进度条非常快#define THREAD_Synchronization 1使用线程同步,可以看到进度条比较慢#include <QtWidgets>#include <QtConcurrent>#include <functional>using namespace QtConcurrent;#define THREAD_Synchronizati原创 2021-03-27 16:44:59 · 723 阅读 · 0 评论 -
QT 多线程传大量数据(传地址,然后接收线程用完删掉)
proQT += coreCONFIG += c++11SOURCES += \ main.cpp \ threadsignalslot.cppHEADERS += \ threadsignalslot.hthreadSignalSlot.h#ifndef THREADSIGNALSLOT_H#define THREADSIGNALSLOT_H#include <QObject>#include <QThread>#i原创 2021-03-26 17:12:08 · 830 阅读 · 3 评论 -
QT中文乱码
QT中文乱码源码文件的编码格式必须与转换函数对应源码文件是 utf-8 编码QString fromUtf8Str = QString::fromUtf8("测试中文字符");源码文件编码是 system ,即是系统默认编码win是GBK、GB2312 等QString fromLocal8BitStr = QString::fromLocal8Bit("测试中文字符");...原创 2021-03-26 10:37:05 · 111 阅读 · 0 评论 -
使用动态库的两种方式(QLibrary、LIBS)
使用动态库的两种方式(QLibrary、LIBS)1 隐式链接,在pro中使用 LIBS2 显式运行时加载,使用QLibrary代码:顶层 libDemo.protestLib 库testLib.prolibraryDemo_global.htestlib.htestlib.cppuseLib 使用库useLib.promain.cpp1 隐式链接,在pro中使用 LIBS2 显式运行时加载,使用QLibrary代码:顶层 libDemo.proTEMPLATE = subdirsSUBDIR原创 2021-02-21 12:45:16 · 724 阅读 · 0 评论 -
cmake 的 qt工程
目录CMakeList.txt 文件main.cppmain.qmlform.hform.cppform.uiqml.qrcCMakeList.txt 文件# cmake最低版本cmake_minimum_required(VERSION 3.0.0)# 工程名称 版本 语言project(helloworld VERSION 1.0.0 LANGUAGES CXX)# 设置c++标准set(CMAKE_CXX_STANDARD 11)set(CMAKE_CXX_STANDARD_RE原创 2021-02-05 23:44:36 · 211 阅读 · 0 评论 -
Qt4和Qt5插件开发(Echo Plugin Example)
testPlugin.proQT += guiQT += widgetsTEMPLATE = libCONFIG += pluginCONFIG += c++11SOURCES += \ genericplugin.cppHEADERS += \ genericplugin.h \ myinterface.hDISTFILES += testPlugin.json# Default rules for deployment.unix { targ原创 2021-02-04 00:30:36 · 396 阅读 · 0 评论