当前位置: 首页 > news >正文

龙华网站建设设计公司汽车推广软文

龙华网站建设设计公司,汽车推广软文,四川不能去的设计院,深圳好看的公司网站背景: 一个包含了组件提升的ui,有个按钮的槽函数就是不响应,于是找原因。 分析: 槽函数的对应一是通过connect函数绑定信号,二是on_XXX_signal的命名方式。界面上部件的槽函数通常是第二种。 我反复确认细节&#…

背景:

一个包含了组件提升的ui,有个按钮的槽函数就是不响应,于是找原因。

分析:

槽函数的对应一是通过connect函数绑定信号,二是on_XXX_signal的命名方式。界面上部件的槽函数通常是第二种。

我反复确认细节,就是找不到问题。直到跟踪moc文件,发现qt_static_metacall函数都不执行。

之前还写过一篇博客:

qt槽函数重写问题,qt_metacall和qt_static_metacall-CSDN博客

为了测试原因,我几乎点了界面上所有的按钮,其它都可以执行qt_static_metacall,直到发现一个低级原因:界面上如果用嵌套方式,里面又套了一层widget,并让它提升为另一个自定义的界面,其中有个按钮的名称和外面的重复,这就不行了。比如:

原因:

186ab805bfa34b97b7a51b48a4b740bf.png

如图所示:一个主ui中嵌套了一个子ui,子ui里面有个pushButton1,主ui里也有一个,这样就不行。按理说,这就好比函数或者模块化设计,分离开来就是怕乱,但是不行,分离开也要注意命名。

在cpp的构造函数中,通常有个setupUi函数,而它存在于ui_XXX.h当中,这就是原因。

主ui的cpp的ui_头文件中,一定会有子ui的ui_头文件。正如我的ui里放了个按钮,那么它的ui_头文件里一定会有#include <QPushButton>。要不构造的时候调用setupUi,怎么生成这个按钮?

所以,放眼主ui的cpp文件,开头一定是:

#include "my_ui.h"

#include "ui_my_ui.h"

按上图的意思,ui_头文件当中展开,成了:

#include "my_ui.h"

...

#include "my_sub_ui.h"

...

而主ui和子ui中都有一样名字的按钮pushButton1,所以my_ui.h和my_sub_ui.h中也一样会有两个槽函数的声明on_pushButton1_clicked。编译器咋整?如果按照名字匹配信号槽,效果跟connect是一样的,但又不完全一样,主界面中的槽函数等于被覆盖了,所以有效的永远是子ui中的槽函数。

乱七八糟的不知道说明白了没有。毕竟qt按照名字on_XXX_signal匹配信号槽的做法,跟connect还是有区别,这个感兴趣可以分析源码。

结论:

所以,如果有ui嵌套,控件命名一定不能重复。

 

http://www.ds6.com.cn/news/56883.html

相关文章:

  • 珠海建站网站模板全国最大的关键词挖掘
  • 做代购可以在哪些网站上站长之家素材网
  • 做网站的价格贵吗百度推广找谁
  • 外文网站搭建公司百度关键字优化价格
  • 建设网站如何赚钱推广软件app
  • 企业网站做多大尺寸seo关键词优化软件合作
  • 做网站时背景音乐seo关键词优化怎么收费
  • 怎么做娱乐网站武汉网站营销seo方案
  • 有无广告销售版本"有广告免费无广告收费"网站网站seo推广seo教程
  • 做网站公司如何选下载百度地图2022最新版官方
  • wordpress 模板 学校蔡甸seo排名公司
  • 个人网站 商业进入百度网首页
  • 网站开发公司资质文大侠seo博客
  • 福州手机网站建设媒介星软文平台
  • 找人做企业网站 注意什么关键词seo价格
  • 有哪些是外国人做的网站googleplay官方下载
  • 朋友给我做网站如何做友情链接
  • 企业咨询合同模板windows优化大师是什么软件
  • 购物网站建设的毕业论文现在如何进行网上推广
  • 海淀深圳网站建设公司国内的搜索引擎排名
  • 提供邢台做wap网站揭阳百度快照优化排名
  • 成都建设网上商城平台公司商丘seo教程
  • 南京网站建设咨询如何做网站推广
  • 建站行业发展怎么优化网站性能
  • 各类网站建设seo基础入门
  • 网站开发项目总结报告新东方教育培训机构官网
  • web设计与开发工程师网站seo优化培训
  • 营销网站设计公司招聘西安区seo搜索排名优化
  • 怎么在导航网站上做推广专门做网站的公司
  • 电子商务平台知识产权保护管理上海好的seo公司