Creo二次开发-UI开发(1)创建会话

2023-12-21 17:08

本文主要是介绍Creo二次开发-UI开发(1)创建会话,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

简介

Creo Object Toolkit C++用户手册中提到,Creo3.0 及以上版本中,the Creo UI Editor 可以自己设计 UI 界面,uifc 框架可以在 toolkit 中使用。具体参考 the Creo UI Editor C++用户手册。
上述提到的 UI Editor 为 Creo 自带的 UI 设计软件,和常用的一些 UI 设计工具,如 QT 类似。具体的一些属性参数在 UI Editor 的用户手册中有介绍,但是信息有限。UI Editor 可以保存.res 文件,可以利用该文件在 toolkit 中创建会话。刚开始想做 UI 时,是打算用 QT 的,由于 VS 的版本问题,没能解决在 VS2012 环境下编译 QT 的问题,转而研究 Creo 自带的 UI 设计工具。在 toolkit 中,UI 模块对应的类以 uifc 开头。

uifcDialog

窗体,所有控件的基础。用函数 uifcCreateDialog()创建:

    #define DIALOG_MAPKEYS "Mapkeys"#define DIALOG_MAPKEYS_RES "Mapkeys.res"uifcCreateDialog(DIALOG_MAPKEYS, DIALOG_MAPKEYS_RES);uifcDialog_ptr Dialog1 = uifcDialogFind(DIALOG_MAPKEYS, DIALOG_MAPKEYS);

uifcDialogListener

Dialog 中的监听器。其中 Creo 自带头文件 uifcDefaultListeners.h 中对各监听器接口做了默认实现,如 uifcDialogListener 对应的默认类为 uifcDefaultDialogListener。后面重载成员函数时,只需覆写用到的函数即可。其中常用的如:

  • OnClose (uifcDialog_ptr handle)——窗口关闭
  • OnDisplay (uifcDialog_ptr handle)——窗口显示
  • OnPreDisplay (uifcDialog_ptr handle)——窗口显示前
    Dialog 创建完成后,使用 uifcDialog 的成员函数 AddActionListener()添加监听器,实现对相应动作的响应。
    在最后还需要使用 uifcActivateDialog()激活窗口,uifcDestroyDialog()销毁窗口。一个窗口完整的生命周期为创建、初始化、激活、关闭和销毁。只有当窗口关闭后才会销毁窗口。
class MyMapkeyDialogListener : public uifcDefaultDialogListener
{
public:void OnClose(uifcDialog_ptr handle){uifcExitDialog(handle->GetDialog(), 0);}
};
wfcStatus ShowMapkeys()
{uifcCreateDialog(DIALOG_MAPKEYS, DIALOG_MAPKEYS_RES);uifcDialog_ptr Dialog1 = uifcDialogFind(DIALOG_MAPKEYS, DIALOG_MAPKEYS);Dialog1->AddActionListener(new MyMapkeyDialogListener());uifcActivateDialog(DIALOG_MAPKEYS);uifcDestroyDialog(DIALOG_MAPKEYS);return wfcTK_NO_ERROR;
}

实例 1.1ShowMapkeys

根据自用快捷键创建分布图,通过创建窗口展示分布图,按键切换。
源代码:1.1ShowMapkeys
源代码通过 makefile 编译,VS2012+Creo3.0 编译通过。
内置 Install.exe 自动生成 creotk.dat 文件

这篇关于Creo二次开发-UI开发(1)创建会话的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/520817

相关文章

Python开发文字版随机事件游戏的项目实例

《Python开发文字版随机事件游戏的项目实例》随机事件游戏是一种通过生成不可预测的事件来增强游戏体验的类型,在这篇博文中,我们将使用Python开发一款文字版随机事件游戏,通过这个项目,读者不仅能够... 目录项目概述2.1 游戏概念2.2 游戏特色2.3 目标玩家群体技术选择与环境准备3.1 开发环境3

CentOS和Ubuntu系统使用shell脚本创建用户和设置密码

《CentOS和Ubuntu系统使用shell脚本创建用户和设置密码》在Linux系统中,你可以使用useradd命令来创建新用户,使用echo和chpasswd命令来设置密码,本文写了一个shell... 在linux系统中,你可以使用useradd命令来创建新用户,使用echo和chpasswd命令来设

使用Python和Pyecharts创建交互式地图

《使用Python和Pyecharts创建交互式地图》在数据可视化领域,创建交互式地图是一种强大的方式,可以使受众能够以引人入胜且信息丰富的方式探索地理数据,下面我们看看如何使用Python和Pyec... 目录简介Pyecharts 简介创建上海地图代码说明运行结果总结简介在数据可视化领域,创建交互式地

Go语言开发实现查询IP信息的MCP服务器

《Go语言开发实现查询IP信息的MCP服务器》随着MCP的快速普及和广泛应用,MCP服务器也层出不穷,本文将详细介绍如何在Go语言中使用go-mcp库来开发一个查询IP信息的MCP... 目录前言mcp-ip-geo 服务器目录结构说明查询 IP 信息功能实现工具实现工具管理查询单个 IP 信息工具的实现服

使用Python开发一个带EPUB转换功能的Markdown编辑器

《使用Python开发一个带EPUB转换功能的Markdown编辑器》Markdown因其简单易用和强大的格式支持,成为了写作者、开发者及内容创作者的首选格式,本文将通过Python开发一个Markd... 目录应用概览代码结构与核心组件1. 初始化与布局 (__init__)2. 工具栏 (setup_t

Spring Shell 命令行实现交互式Shell应用开发

《SpringShell命令行实现交互式Shell应用开发》本文主要介绍了SpringShell命令行实现交互式Shell应用开发,能够帮助开发者快速构建功能丰富的命令行应用程序,具有一定的参考价... 目录引言一、Spring Shell概述二、创建命令类三、命令参数处理四、命令分组与帮助系统五、自定义S

Python通过模块化开发优化代码的技巧分享

《Python通过模块化开发优化代码的技巧分享》模块化开发就是把代码拆成一个个“零件”,该封装封装,该拆分拆分,下面小编就来和大家简单聊聊python如何用模块化开发进行代码优化吧... 目录什么是模块化开发如何拆分代码改进版:拆分成模块让模块更强大:使用 __init__.py你一定会遇到的问题模www.

Spring Security基于数据库的ABAC属性权限模型实战开发教程

《SpringSecurity基于数据库的ABAC属性权限模型实战开发教程》:本文主要介绍SpringSecurity基于数据库的ABAC属性权限模型实战开发教程,本文给大家介绍的非常详细,对大... 目录1. 前言2. 权限决策依据RBACABAC综合对比3. 数据库表结构说明4. 实战开始5. MyBA

使用Python开发一个简单的本地图片服务器

《使用Python开发一个简单的本地图片服务器》本文介绍了如何结合wxPython构建的图形用户界面GUI和Python内建的Web服务器功能,在本地网络中搭建一个私人的,即开即用的网页相册,文中的示... 目录项目目标核心技术栈代码深度解析完整代码工作流程主要功能与优势潜在改进与思考运行结果总结你是否曾经

Spring Boot + MyBatis Plus 高效开发实战从入门到进阶优化(推荐)

《SpringBoot+MyBatisPlus高效开发实战从入门到进阶优化(推荐)》本文将详细介绍SpringBoot+MyBatisPlus的完整开发流程,并深入剖析分页查询、批量操作、动... 目录Spring Boot + MyBATis Plus 高效开发实战:从入门到进阶优化1. MyBatis