QT
A 壹零贰肆
长风破浪会有时,直挂云帆济沧海。
展开
-
C++11新特性:参数绑定——std::bind
概述std::bind函数定义在头文件functional中,是一个函数模板,它就像一个函数适配器,接受一个可调用对象(callable object),生成一个新的可调用对象来“适应”原对象的参数列表。一般而言,我们用它可以把一个原本接收N个参数的函数fn,通过绑定一些参数,返回一个接收M个(M可以大于N,但这么做没什么意义)参数的新函数。同时,使用std::bind函数还可以实现参数顺序调整等操作。函数原型std::bind函数有两种函数原型,定义如下:template< cla..转载 2021-09-14 23:00:40 · 815 阅读 · 0 评论 -
std::function实现原理简述
实际上,每个function实例都根据函数类型的中返回值和参数类型推演出一个特例化,然后用类的成员变量去保留用这个函数类型的产生的函数指针,使用的时候实际上调用该类的小括号运算符重载operator()int sum(int a,int b){ return a+b;}template <typename R>class MyFunction{};/*部分特例化R:operator()的返回值,Arg1,Arg1为operator()的形参类型*/template转载 2021-09-14 22:57:08 · 357 阅读 · 0 评论 -
std::function详解
std::function简介• 类模板声明// MS C++ 2013template<class _Fty> class function;template<class _Fty> class function : public _Get_function_impl<_Fty>::type { ... }// GCC 4.8.2template<typename _Signature> class fu转载 2021-09-14 22:54:38 · 1458 阅读 · 2 评论 -
C++ std::function介绍和使用
std::function简介std::function是C++11中新引入的模板类。类模板std::function是一种通用的多态函数包装器。std::function可以存储,复制和调用任何Callable 目标的实例,例如函数,lambda表达式,绑定表达式或其他函数对象,以及指向成员函数和指向数据成员的指针。所存储的可调用对象被称为目标的std::function。如果一个std::function实例不包含目标,则将其称为空。调用空的std::function对象会导致抛出异常std:转载 2021-09-14 22:45:59 · 756 阅读 · 0 评论 -
Qt 使用#define+qDebug()输出调试信息
#define debug#ifdef debug #define qdebug(format, ...) qDebug("File:%s, Function:%s, Line:%d "format, __FILE__, __FUNCTION__, __LINE__, ##__VA_ARGS__);#else #define qdebug(format, ...)#endif转载 2021-09-14 22:42:50 · 565 阅读 · 0 评论 -
Qt使用QNetworkAccessManager实现Http操作
1. 介绍QtNetwork是Qt网络操作模块,提供了基于TCP/IP的各种API,除了之前介绍过的最基础的TCP及UDP通讯:QTcpSocket-Qt使用Tcp通讯实现服务端和客户端、QUdpSocket-Qt使用Udp通讯实现服务端和客户端,还提供了HTTP、HTTPS、FTP等高级API,并统一使用QNetworkAccessManager进行操作。Ftp使用请见:Qt使用QNetworkAccessManager实现Ftp操作qt4x分别使用QFtp和QHttp,5以后统一用QNetwo转载 2020-11-21 17:05:55 · 1460 阅读 · 0 评论 -
Qt函数作函数参数
类里写个要传的函数:(切记:函数一定要是静态函数,前面加个static)如类名为:myObj函数为:static void myfun(int a, int b);自定义函数:(函数为参数的函数):void fun(void (*hh)(int, int)){ hh(4,5);}或者:void fun(void (myObj::*hh)(int, int)){ hh(4,5);}类成员函数作为函数参数的引用:(如果是类的...原创 2020-09-14 21:53:24 · 2058 阅读 · 0 评论 -
Qt编写自定义控件插件路过的坑及注意事项
在一日一控件的口号下,终于写好了五十几个自定义控件,包括各种仪表盘,各种温度计,各种进度条,各种按钮等,具体可参见(http://www.cnblogs.com/feiyangqingyun/p/6128288.html)目前演示DEMO都是采用提升的方法来显示的,一直有个想法,想做成和QWT一样的可以直接编译集成到Qt Creator中,方便用户直接拖控件使用,即做成Qt Creator的插件,Qt要写Qt Creator的插件极为方便,和新建Qt Widget项目一样的步骤。方法可参见(http://b转载 2020-09-12 22:17:40 · 496 阅读 · 0 评论 -
Qt事件过滤器原理EventFilter(installEventFilter函数)
Qt事件过滤器原理(installEventFilter函数)本文为原创文章,转载请注明出处,或注明转载自“黄邦勇帅(原名:黄勇)本文出自本人原创著作《Qt5.10 GUI完全参考手册》网盘地址:https://pan.baidu.com/s/1iqagt4SEC8PUYx6t3ku39Q《C++语法详解》网盘地址:https://pan.baidu.com/s/1dIxLMN5b91zpJN2sZv1MNg若对C++语法不熟悉,建议参阅本人所著《C++语法详解》一书,电子工业出版社出版,该转载 2020-09-12 22:04:43 · 981 阅读 · 0 评论 -
Qt打开对话框去掉标题栏不直接运行
this->setWindowFlags(Qt::FramelessWindowHint | Qt::Dialog);后面多加一个Qt::Dialog原创 2020-09-12 21:05:55 · 133 阅读 · 0 评论 -
Qt中json的基本用法
原创 2020-09-12 21:03:37 · 186 阅读 · 0 评论 -
QT使用qwebenginView与js通信及加载html
1.js调用qt注册类的信号的方法2.qt中pro中要引用qwebenginView3.注册类(与js通信的类)4.QT加载html与js通信注册的方法5.每次加载要清除缓存原创 2020-09-12 21:02:33 · 394 阅读 · 0 评论 -
Qt的QWebChannel和JS、HTML通信/交互驱动百度地图
本文重点来说一下,如何从JavaScript获取回传信息,实现交互1 实现过程1.1 原理阐述我是非专业的,我也没有找关于HTML和JS交互的书,在我研究的过程中我认为是一个这样的关系:QWebEngine提供了调用HTML里面JavaScript的方法,这里HTML像是一个接口,在HTML尾部有一个这样的标签, ,在这个标签内的函数和变量体中写入一些函数和变量,这些函数和变量...转载 2020-05-06 23:01:03 · 1192 阅读 · 0 评论 -
Qt+QML+Html的开发模式.
不多说,直接上代码.1.QT.pro文件配置QT += qml quick webengine2.QML文件import QtQuick 2.5import QtQuick.Window 2.2import QtWebEngine 1.4import QtQuick.Controls 2.0import QtWebSockets 1.1 Window { v...转载 2020-05-05 15:55:31 · 590 阅读 · 2 评论 -
QT如何管理组件--添加/删除组件(解决“要继续此操作,至少需要一个有效且已启用的储存库”问题)
QT的组件管理软件并没有在开始菜单或者桌面添加快捷方式(5.9版本),也没有在代码编辑界面设置相关的选项,藏的比较深,因此我被坑了很多次(之前如果要添加组件,只能选择卸载了重装)没有对比旧没有伤害,微软visual studio2017的组件管理软件visual studio installer清晰明了在被坑了多次之后,在一次偶然的机会,我在QT安装目录发现了QT的组件管理软件Mai...转载 2020-05-05 13:43:36 · 980 阅读 · 0 评论 -
通过WebChannel/WebSockets与QML中的HTML交互
一、前言Qt允许使用所谓的混合GUI创建应用程序——在这种GUI中,可以将本机部件与基于html的内容混合在一起。通过WebChannel和WebSockets公开QObject,这种混合甚至支持这些本地部分和html端之间的交互。二、如何显示HTML内容 使用webEngineView; 使用webView; 使用独立的Web浏览器(不会集成到应用程序中);...转载 2020-05-05 12:21:23 · 736 阅读 · 0 评论 -
Qml使用js时注意事项(Invalid import qualifier ID)
引入js时,as 后的名称必须大写如:import ***.js as Myjs原创 2020-05-05 11:54:01 · 521 阅读 · 0 评论 -
QML与C++混合编程详解(QML与c++信号与槽的操作)
1、QML与C++为什么要混合编程QML与C++为什么要混合编程,简单来说,就是使用QML高效便捷地构建UI,而C++则用来实现业务逻辑和复杂算法,下面介绍了两者间交互的方法与技巧。2、QML访问C++概述Qt集成了QML引擎和Qt元对象系统,使得QML很容易从C++中得到扩展,在一定的条件下,QML就可以访问QObject派生类的成员,例如信号、槽函数、枚举类型、属性、成员函数等。...转载 2020-05-05 10:48:43 · 2173 阅读 · 4 评论 -
QT生成程序后的封包软件或打包软件
1.如果需要把这些文件打包成一个exe文件了,我们可以用Enigma Virtual Box这款软件, 现在最新的版本已经是7.4了,百度一搜索就有,然后就开始添加文件打包了:最后点击“执行封包”就能生成一个exe文件,如图示:于是这个打包好的程序就可以放到其他电脑上运行啦。如果有需要制作成安装包程序可以使用Inno setup这款软件制作安装包,当然网上还有很...原创 2020-05-02 11:23:24 · 360 阅读 · 0 评论 -
qt生成的exe无法直接运行(缺少一些dll文件)
1.打开qt的一个cmd窗口。2.进入你生成的exe文件的目录,我这里是进入桌面下的test目录。我们通过dir命令可以查看到test目录下我们刚刚生成的那个exe文件。3.使用windeployqt进行提取你需要的dll文件,它是可以自动进行提取的。使用方法为 windeployqt exe文件名,例如我这里就是windeployqt qMainWindow.exe...转载 2020-05-02 11:12:33 · 1777 阅读 · 0 评论