qt之proxy()代理探究
简介: qt: proxy()
代理探究
文章目录
- 查看源码:
- 问题起因:
- 尝试分析:
- 正确回答:
- 系列地址:
查看源码:
qt中源码查阅可看到:
/*!\since 4.6\fn const QStyle *QStyle::proxy() constThis function returns the current proxy for this style.By default most styles will return themselves. Howeverwhen a proxy style is in use, it will allow the style tocall back into its proxy.
*/
const QStyle * QStyle::proxy() const
{Q_D(const QStyle);return d->proxyStyle;
}
问题起因:
在封装函数的时候,
int radius = proxy()->pixelMetric(PM_FrameRadius, opt, w);
//为什么这里使用proxy()->
会显示报错,没有匹配到的相应的函数
// int radius = DStyle::pixelMetric(PM_FrameRadius, opt, w);
//而下面的可以通过
尝试分析:
检索Qt帮助手册:pixelMetric
;发现一共有如下QStyle–>QCommonStyle–>QProxyStyle (只有这三个,依次为重写上一个)
int QStyle::pixelMetric(QStyle::PixelMetric metric, const QStyleOption *option = nullptr, const QWidget *widget = nullptr) const
int QCommonStyle::pixelMetric(QStyle::PixelMetric m, const QStyleOption *opt = nullptr, const QWidget *widget = nullptr) const
int QProxyStyle::pixelMetric(QStyle::PixelMetric metric, const QStyleOption *option = nullptr, const QWidget *widget = nullptr) const
int DStyle::pixelMetric(QStyle::PixelMetric m, const QStyleOption *opt = nullptr, const QWidget *widget = nullptr) const override;
正确回答:
然而,上面的分析实际上,并没有什么卵用,用下面一句话解决:
proxy()
实际上就是返回它自己,相当于当前类的this
指针;通过自己实际工程中的验证,也的确是这样这理解
其源码英文的注释翻译如下:
此函数返回此样式的当前代理。 默认情况下,大多数样式都会返回。 然而当使用代理样式时,它将允许样式回调它的代理.
系列地址:
QtExamples
欢迎 star
和 fork
这个系列的 QT / DTK 学习,附学习由浅入深的目录。
qt之proxy()代理探究相关推荐
- Proxy代理 和 Reflect反射(反射的是obj)的概念
1. Proxy代理 // 供应商(原始对象)let obj = {time:'2018-01-03',name:'net',_r: "123"}// 创建代理商,传入obj数据l ...
- es6的Proxy(代理)
es6的Proxy(代理) Proxy可以监听对象身上发生了什么事情,并在这些事情发生后执行一些相应的操作.一下子让我们对一个对象有了很强的追踪能力,同时在数据绑定方面也很有用处 //代理: var ...
- 分布式系统——zabbix 用 onealert实现报警、agent主动模式、proxy代理
实验环境 物理机: rhel 7.3系统--172.25.54.250 server1:rhel 7.3系统--172.25.54.1 server2:rhel 6.5系统--172.25.54.11 ...
- 关于Vue 3.0 的改进 Proxy 代理实现数据驱动视图
Vue 3.0 中使用了 Proxy 对象代理进行拦截实现了数据绑定视图的驱动操作.弥补了vue2.0中的局限,比如属性删除增加监听.对数组基于下标的修改.长度变化等等. 参考一下网上流传的机制图 P ...
- 第十二节:ES6 Proxy代理 和 去银行存款有什么关系?
ES:给开发者提供了一个新特性:Proxy,就是代理的意思.也就是我们这一节要介绍的知识点. 以前,ATM还没有那么流行的时候(暴露年纪),我们去银行存款或者取款的时候,需要在柜台前排队,等柜台工作人 ...
- vue跨域问题:proxy代理跨域
前端跨域,本地跨域,vue项目跨域问题 疑问1: 前端开发中解决浏览器的跨域问题 (推荐阅读) 什么是跨域? 为什么要跨域? 解决"跨域"的五种常见方式: 1. JSONP 2. ...
- Proxy(代理,拦截器),Reflect(反射)
Proxy(代理,拦截器),Reflect(反射) Proxy: 代理: var duixaing = {"name":"小胖","age" ...
- vue-cli、脚手架创建、eslint、alias别名配置、proxy代理配置、axios、scoped、穿透、媒体查询、12栅格、动态rem、1px边框、移动端事件、300ms延迟问题(六)
vue-cli的使用 现在使用前端工程化开发项目是主流的趋势,也就是说,我们需要使用一些工具来搭建vue的开发环境.一般情况下我们都会选择使用webpack进行项目的构建,在这里我们直接使用vue官方 ...
- proxy代理解决跨域问题
使用proxy代理方式解决跨域问题 首先,了解一下什么是什么跨域,为什么会出现跨域问题? 每个浏览器的URL由协议.域名.端口号:我们可以看到下面表格的一些测试URL: URL地址 协议 域名 端口号 ...
最新文章
- ASP.NET之对称算法加密
- python正则表达式指南_Python正则表达式指南
- boost::mpl模块实现list相关的测试程序
- Fegion-3覆写Fegion的默认配置及Fegion的日志
- servletcontext 使用解析
- 从零开始编写自己的C#框架(1)——前言
- Mysql_mysql多个TimeStamp设置
- [转载] python中callable_Python callable() 函数
- vm.$nextTick( [callback] )用法
- 2022Adobe全套资源|PS PR AE
- Python自动化测试之PO模式
- 网页打开慢,甚至突然打不开?图片刷新不出来?多半是DNS的问题!
- 发散阅读、拓宽思路【PageRank、Tf-Idf、协同过滤、分布式训练、StyleTransfer、Node2vec】
- boot版本是什么 cent os_Cent OS 7系统目录结构
- 计算机优质书籍搜集(持续更新)
- golang web 服务器 request 与 response 处理
- 正则表达式匹配仅包含某些字符或者包含某些字符
- 农行计算机类笔试好过吗,2020中国农业银行招聘笔试要多少分才能进入面试?...
- 野火电机+CUBEMX——直流有刷电机的实现
- 数据分析04-朴素贝叶斯