gtkmm xml ui 例子(from string)
文章目录
- 前言
- 来看一个从字符串中生成UI的例子
前言
- glade生成的xml格式不被gtkmm4支持, 需要作修改
来看一个从字符串中生成UI的例子
-
可以把那些字符串放入一个xml文件#include <gtkmm/application.h> #include <gtkmm.h> #include <iostream> using namespace std;class ExampleWindow : public Gtk::Window { public:ExampleWindow();virtual ~ExampleWindow() {};void on_action_file_new(){cout << "New" << endl;};void on_action_file_open() {};void on_action_file_quit() {};Gtk::Box m_Box; }; ExampleWindow::ExampleWindow() {auto m_refBuilder = Gtk::Builder::create();Glib::ustring ui_info ="<interface>"" <menu id='menubar'>"" <submenu>"" <attribute name='label' translatable='yes'>_File</attribute>"" <section>"" <item>"" <attribute name='label' translatable='yes'>_New</attribute>"" <attribute name='action'>example.new</attribute>"" </item>"" </section>"" <section>"" <item>"" <attribute name='label' translatable='yes'>_Quit</attribute>"" <attribute name='action'>example.quit</attribute>"" </item>"" </section>"" </submenu>"" <submenu>"" <attribute name='label' translatable='yes'>_Edit</attribute>"" <item>"" <attribute name='label' translatable='yes'>_Copy</attribute>"" <attribute name='action'>example.copy</attribute>"" </item>"" <item>"" <attribute name='label' translatable='yes'>_Paste</attribute>"" <attribute name='action'>example.paste</attribute>"" </item>"" </submenu>"" </menu>""</interface>";//绑定行动的对应动作 实际绑定auto m_refActionGroup = Gio::SimpleActionGroup::create();m_refActionGroup->add_action("new", sigc::mem_fun(*this, &ExampleWindow::on_action_file_new));m_refActionGroup->add_action("open", sigc::mem_fun(*this, &ExampleWindow::on_action_file_open));m_refActionGroup->add_action("quit", sigc::mem_fun(*this, &ExampleWindow::on_action_file_quit));insert_action_group("example", m_refActionGroup);//行动组example 实体诞生m_refBuilder->add_from_string(ui_info);//m_refBuilder->add_from_file("K:\\CPlusPlus\\cgcc\\Xml_UI.xml");auto gmenu = m_refBuilder->get_object<Gio::Menu>("menubar");auto pMenuBar = Gtk::make_managed<Gtk::PopoverMenuBar>(gmenu);m_Box.append(*pMenuBar);set_child(m_Box);pMenuBar->set_visible(true);m_Box.set_visible(true); } int main(int argc, char* argv[]) {auto app = Gtk::Application::create("org.gtkmm.example");//app快捷键 键位设置对应行动 预先设置app->set_accel_for_action("example.new", "<Primary>n");//表示Ctrl+Napp->set_accel_for_action("example.quit", "<Primary>q");//表示Ctrl+Qapp->set_accel_for_action("example.copy", "<Primary>c");//表示Ctrl+Capp->set_accel_for_action("example.paste", "<Primary>v");//表示Ctrl+V//Shows the window and returns when it is closed.return app->make_window_and_run<ExampleWindow>(argc, argv); }

然后
m_refBuilder->add_from_file(“K:\CPlusPlus\cgcc\Xml_UI.xml”);
代替上面的add_from_string.
相关文章:
gtkmm xml ui 例子(from string)
文章目录 前言来看一个从字符串中生成UI的例子 前言 glade生成的xml格式不被gtkmm4支持, 需要作修改 来看一个从字符串中生成UI的例子 #include <gtkmm/application.h> #include <gtkmm.h> #include <iostream> using namespace std;class ExampleWindow :…...
第2章 Linux 中执行命令
第2章 Linux 中执行命令 命令格式 命令 [选项] [参数....] 在linux 中命令分为内部命令和外部命令。 ctrll 可以清屏 查看帮助的命令 在使用命令之前,我们可以通过帮助来查看这个命令的格式和使用方式。在 Linux 中有两个帮助命令, help 和 man help…...
python3.8 安装缺少ssl、_ctypes模块解决办法
问题 安装pyhton3.8安装默认不依赖ssl 运行Flask项目时报错: Traceback (most recent call last):File "/usr/local/python3/bin/flask", line 8, in <module>sys.exit(main())File "/usr/local/python3/lib/python3.8/site-packages/flask…...
鸿蒙开发-UI-页面路由
鸿蒙开发-UI-组件 鸿蒙开发-UI-组件2 鸿蒙开发-UI-组件3 鸿蒙开发-UI-气泡/菜单 文章目录 一、基本概念 二、页面跳转 1.router基本概念 2.使用场景 3.页面跳转参数传递 三、页面返回 1.普通页面返回 2.页面返回前增加一个询问框 1.系统默认询问框 2.自定义询问框 总…...
【Git】多个托管平台Git账户配置
目录 多个托管平台GIt账户如何配置SSH 路由配置验证 用户名邮箱配置验证 多个托管平台GIt账户如何配置 通常情况,公司会搭建自己的gitlab代码托管服务或者将代码托管到第三方平台上,而我们自己的开源项目通常托管到Github上,每个托管平台都有…...
vue2 图片懒加载vue-lazyload 插件
1、npm install vue-lazyload --save 2、在项目的主文件(例如 main.js)中引入和使用插件: import Vue from vue import VueLazyload from vue-lazyloadVue.use(VueLazyload) 3、现在,你可以在需要懒加载图片的组件中使用 v-laz…...
element-ui button 组件源码分享
element-ui button 源码分享,基于对源码的理解,编写一个简单的 demo,主要分三个模块来分享: 一、button 组件的方法。 1.1 在方法这块,button 组件内部通过暴露 click 方法实现,具体如下: 二、…...
Spring实现事务(一)
Spring事务 .什么是事务事务的操作Spring中事务的实现准备工作创建表创建项目,引入Spring Web, Mybatis, mysql等依赖配置文件实体类 编程式事务(手动写代码操作事务)声明式事务(利用注解自动开启和提交事务) . 什么是事务 事务是⼀组操作的集合, 是⼀个不可分割的操作 在我们…...
获取依赖aar包的两种方式-在android studio里引入 如:glide
背景:我需要获取aar依赖到内网开发,内网几乎代表没网。 一、 如何需要获取依赖aar包 方式一:在官方的github中下载,耗时不建议 要从开发者网站、GitHub 存储库或其他来源获取 ‘com.github.bumptech.glide:glide:4.12.0’ AAR 包ÿ…...
vue3-深入组件-依赖注入
Prop 逐级透传问题 通常情况下,当我们需要从父组件向子组件传递数据时,会使用 props。 如果是多层级嵌套的组件,如何从一级传递到 3 级甚至更远呢。 若使用 props 则必须将其沿着组件链逐级传递下去,这会非常麻烦,所…...
【项目日记(七)】第三层: 页缓存的具体实现(上)
💓博主CSDN主页:杭电码农-NEO💓 ⏩专栏分类:项目日记-高并发内存池⏪ 🚚代码仓库:NEO的学习日记🚚 🌹关注我🫵带你做项目 🔝🔝 开发环境: Visual Studio 2022 项目日…...
深入解剖指针篇(2)
目录 指针的使用 strlen的模拟实现 传值调用和传址调用 数组名的理解 使用指针访问数组 一维数组传参的本质 冒泡排序 个人主页(找往期文章):我要学编程(ಥ_ಥ)-CSDN博客 指针的使用 strlen的模拟实现 库函数strlen的功能是求字符串…...
【知识点】Java常用
文章目录 基础基础数据类型内部类Java IOIO多路复用重要概念 Channel **通道**重要概念 Buffer **数据缓存区**重要概念 Selector **选择器** 关键字final 元注解常用接口异常处理ErrorException JVM与虚拟机JVM内存模型本地方法栈虚拟机栈 Stack堆 Heap方法区 Method Area (JD…...
MySQL篇—迁移数据目录到新的本地路径
☘️博主介绍☘️: ✨又是一天没白过,我是奈斯,DBA一名✨ ✌✌️擅长Oracle、MySQL、SQLserver、Linux,也在积极的扩展IT方向的其他知识面✌✌️ ❣️❣️❣️大佬们都喜欢静静的看文章,并且也会默默的点赞收藏加关注❣…...
【FPGA】高云FPGA之IP核的使用->PLL锁相环
FPGA开发流程 1、设计定义2、设计输入3、分析和综合4、功能仿真5、布局布线6、时序仿真7、IO分配以及配置文件(bit流文件)的生成8、配置(烧录)FPGA9、在线调试 1、设计定义 使用高云内置IP核实现多路不同时钟输出 输入时钟50M由晶…...
程控设备和电脑通信的总线和协议选择
文章目录 程控设备都通过什么协议和总线和电脑通信?工控设备都使用什么通信协议与电脑通信?各种工控设备通信协议的优缺点如何选择适合工控设备的通信协议?各种工控设备通信总线的优缺点如何判断一种总线是否适合特定的应用场景?程控设备都通过什么协议和总线和电脑通信? …...
鸿蒙开发-UI-组件导航-Navigation
鸿蒙开发-UI-组件 鸿蒙开发-UI-组件2 鸿蒙开发-UI-组件3 鸿蒙开发-UI-气泡/菜单 鸿蒙开发-UI-页面路由 文章目录 目录 一、基本概念 二、页面显示模式 1.自适应模式 2.单页面模式 3.分栏模式 三、标题栏模式 1.Mini模式 2.Full模式 四、菜单栏 五、工具栏 六、案例 …...
Codeforces Round 922 (Div. 2)(A~D)补题
A题考虑贪心,要使使用的砖头越多,每块转的k应尽可能小,最小取2,最后可能多出来,多出来的就是最后一块k3,我们一行内用到的砖头就是 m 2 \frac{m}{2} 2m下取整,然后乘以行数就是答案。 #inclu…...
Seata下载与配置、启动
目录 Seata下载Seata配置启动Seata Seata下载 首先,我们需要知道我们要使用哪个版本的seata,这就要查看spring-cloud-alibaba版本说明,找到我们对应的seata。 spring-cloud-alibaba版本说明: 地址链接 下面是部分版本说明: s…...
什么是TCP三次握手、四次挥手?
1、三次握手 你(客户端)给一个朋友(服务器)打电话,告诉他你想开始对话。这就像是发送一个SYN(同步序列编号)信号,表示你想开始建立连接。(client向server发送syn,seqx,此时client验证client发送能力正常。client置为SYN SENT状态)…...
Chrome插件开发实战指南:从入门到发布的完整开发教程
随着浏览器生态不断发展,Chrome插件(Chrome Extension)已经成为提高工作效率、实现自动化操作、数据采集以及浏览器功能增强的重要工具。无论是广告拦截、网页翻译、SEO分析,还是自动化办公,背后几乎都离不开Chrome插件技术。 尤其是在AI时代,Chrome插件已经不仅仅是“浏…...
Gitee 企业版三大模块升级解读:项目模板、工作项流程与测试资产如何降低协作成本
作者:Gitee 企业版产品/研发协作团队 资料依据:Gitee 官方博客(2026年1月23日发布)、Gitee 帮助中心、Gitee 企业版功能说明文档 适读对象:项目经理、研发负责人、测试负责人、企业研发平台管理员 核心结论 Gitee 企…...
OBS Source Record:解锁视频源独立录制的技术乐高
OBS Source Record:解锁视频源独立录制的技术乐高 【免费下载链接】obs-source-record 项目地址: https://gitcode.com/gh_mirrors/ob/obs-source-record 想象一下,你在OBS Studio中精心布置了一个包含摄像头、游戏画面和PPT演示的复杂场景&…...
DLSS版本管理器:5分钟掌握游戏性能优化终极指南
DLSS版本管理器:5分钟掌握游戏性能优化终极指南 【免费下载链接】dlss-swapper 项目地址: https://gitcode.com/GitHub_Trending/dl/dlss-swapper 你是否曾因游戏帧数不稳定而烦恼?是否想体验最新DLSS技术带来的性能提升却不知从何入手ÿ…...
3分钟解锁你的QQ音乐:这款macOS工具让加密格式秒变通用音频
3分钟解锁你的QQ音乐:这款macOS工具让加密格式秒变通用音频 【免费下载链接】QMCDecode QQ音乐QMC格式转换为普通格式(qmcflac转flac,qmc0,qmc3转mp3, mflac,mflac0等转flac),仅支持macOS,可自动识别到QQ音乐下载目录,…...
5分钟免费搞定:让Windows资源管理器原生显示iPhone HEIC照片缩略图
5分钟免费搞定:让Windows资源管理器原生显示iPhone HEIC照片缩略图 【免费下载链接】windows-heic-thumbnails Enable Windows Explorer to display thumbnails for HEIC/HEIF files 项目地址: https://gitcode.com/gh_mirrors/wi/windows-heic-thumbnails 你…...
3步解锁你的专属B站:Bilibili-Evolved开源增强工具完全指南
3步解锁你的专属B站:Bilibili-Evolved开源增强工具完全指南 【免费下载链接】Bilibili-Evolved 强大的哔哩哔哩增强脚本 项目地址: https://gitcode.com/gh_mirrors/bi/Bilibili-Evolved 你是否曾对B站千篇一律的界面感到审美疲劳?是否被首页推荐…...
中兴光猫工厂模式终极解锁工具:zteOnu完整指南
中兴光猫工厂模式终极解锁工具:zteOnu完整指南 【免费下载链接】zteOnu A tool that can open ZTE onu device factory mode 项目地址: https://gitcode.com/gh_mirrors/zt/zteOnu 你是否曾经因为中兴光猫的限制而感到束手无策?想要进行高级配置却…...
如何快速掌握Blender 3MF插件:3个高效配置技巧实现CAD到3D打印无缝工作流
如何快速掌握Blender 3MF插件:3个高效配置技巧实现CAD到3D打印无缝工作流 【免费下载链接】Blender3mfFormat Blender add-on to import/export 3MF files 项目地址: https://gitcode.com/gh_mirrors/bl/Blender3mfFormat 你是否在为Blender与3D打印机之间的…...
短信验证码5大常见漏洞与防御实战
1. 这不是“绕过”,而是对验证码机制的深度体检你有没有遇到过这样的场景:在测试一个新上线的注册流程时,输入手机号、点击“获取验证码”,页面立刻弹出“验证码已发送成功”,但手机却迟迟没收到短信;再点一…...
