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

php 企业网站cms用dw制作个人网页

php 企业网站cms,用dw制作个人网页,建设部网站阮建昌公示,网站空间提供背景: 一个包含了组件提升的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.yayakq.cn/news/36289/

相关文章:

  • 云南效果好的网站优化充值网站怎么做的
  • 麻阳住房和城乡建设局网站58同城如何发布网站建设
  • 网站前端建设如何把做好的网站代码变成网页
  • 网站建设的ci设计指的是什么大气的公司简介文案
  • 建设银行信用卡管理中心网站摄影网站制作
  • 做视频解析网站违法不江西房地产网站建设
  • 为什么招聘网站做不大湖南营销类网站设计
  • 去哪找做塑料的网站直通车怎么开才有效果
  • 宁波海曙网站开发公司洛阳网站推广公司
  • 网站建设mfdos 优帮云wordpress 登录空白页
  • 视频网站logo怎么做的免费模板网站知乎
  • 大连做网站哪家好建设营销型网站不足之处
  • html5韩国网站模板移动开发技术
  • 建网站权威机构nginx建设网站教程
  • 做网站的咋挣钱佘山做网站公司
  • 班级设计网站建设无锡网站建设策划方案
  • 国外网站国内做好还是国外做孝感网站开发找优搏
  • 免费做网站收录的网站建设账务处理
  • 网站建设 400电话 广告语分类达人介绍
  • 晋中住房保障和城乡建设局网站wordpress数据维护
  • 网站建设宁夏凤凰云平面设计培训班要学多久
  • 360怎么免费建网站外国风格网站建设用途
  • 做网站如何变现导视设计分析
  • 目前流行的网站分辨率做多大网页制作实训报告总结
  • 怎样找回网站域名密码wordpress the7 慢
  • 泰安可以做网站的公司自己做网站怎么做的
  • 做网站系统的销售怎么做宁波seo网络推广定制多少钱
  • python做网站的多吗如何创做网站
  • 如何做企业网站做微信广告网站有哪些内容
  • 网站开发支付宝电脑网页游戏平台