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

ZW3D二次开发_非模板表单_控件_添加回调

        ZW3D的非模板表单的控件即“ZW3D Widgets”下的控件,常用的如“ZsCc::ComboBox”,"Zscc::ListWidget","ZsCc::MatrixPushButtons","Zscc::TableWidget"和"ZsCc::TreeView"等,使用它们时,ZW3D在内部实现了这些控件的最常用的回调机制(比如按钮点击回调,列表选中项更改等)。

        在设计表单UI时,我们需要设置这些控件的Id和回调命令名,以便准确触发回调

        

1.在表单UI中添加Id和回调命令名

        这里以“ZsCc::MatrixPushButtons为例”,添加控件后,属性页的“Dynamic Properties”中默认有一个“Id”,此即该识别该控件的唯一id,可为任意正整数

        

        点击属性页的“+”号,选择“String...”类型,在弹出的窗口中的“Property Name”中输入“callback”,确定

        

        

        此时在属性页的“Dynamic Properties”中便多了一个动态属性“callback”,在其中输入回调命令“ZsCcMatrixPushButtons_update_cb”(名称可自定),最后保存表单UI

        

        

2.在代码中编写及注册注销回调命令

        非模板表单的控件的回调函数的函数签名为:

        int CallbackName(char* formName, int idField, int idItem);

        其中第一个参数为表单名,第二个参数为触发此回调的控件,第三个参数为更具体的触发此回调的控件中的元素(ZW3D中很多控件是多个qt控件复合而成)

int ZsCcMatrixPushButtons_update_cb(char* formName, int idField, int idItem)
{
	WriteMessage("表单【%s】的控件id为【%d】的按钮被按下", formName, idField);
	return 0;
}

   在插件的入口和出口函数中注册和注销回调命令

//入口函数,函数名必须为“项目名”+“Init”,区分大小写
// Entry function, which must be named as "Project name" + "Init" ,case sensitive
extern "C" _declspec(dllexport) int 项目名Init(int format, void* data)
{
	ZF_CALL(cvxCmdFunc("ZsCcMatrixPushButtons_update_cb", ZsCcMatrixPushButtons_update_cb, VX_CODE_GENERAL));
	return 0;
}
 
//出口函数,函数名必须为“项目名”+“Exit”,区分大小写
// Exit function, which must be named as "Project name" + "Exit" ,case sensitive
extern "C" _declspec(dllexport) int 项目名Exit(void)
{
	ZF_CALL(cvxCmdFuncUnload("ZsCcMatrixPushButtons_update_cb"));
	return 0;
}

3.效果

        ​​​​​​​​​​​​​​ 

        按下按钮后,回调命令触发

        

        


http://www.kler.cn/a/611573.html

相关文章:

  • Leetcode12-整数转罗马数字
  • 数据库基础知识点(系列七)
  • 【开题报告+论文+源码】基于SpringBoot的智能安全与急救知识科普系统设计与实现
  • 【后端】【Django DRF】从零实现RBAC 权限管理系统
  • Ubuntu22.04搭建freeradius操作说明
  • Java基础 3.22
  • 深度学习入门1 基于Python的理论与实现
  • 如何在 Postman 中发送 DELETE 请求?
  • ngx_conf_handler - root html
  • GPT Researcher 的win docker安装攻略
  • unity泛型对象池
  • Elasticsearch:使用 AI SDK 和 Elastic 构建 AI 代理
  • JVM
  • Occlum 是一个内存安全的、支持多进程的 library OS,特别适用于 Intel SGX。
  • 基于VMware虚拟机的Ubuntu22.04系统安装和配置(新手保姆级教程)
  • b站视频字幕提取拓展推荐
  • 腾讯四面面经
  • 架构思路法
  • 批量给 PDF 页面添加超链接
  • Android 自定义变形 SHA1 算法