多 split 窗口 in Gtkmm4

文章目录

  • 效果预览
  • 实现概要
  • 源代码

效果预览

image

实现概要

  • 使用Gtk::Paned
  • 虽然 Paned 只能装两个子控件, 但是我可以嵌套
    paned1 装 box1 和 box2
    paned2 装 paned1 和 box3

源代码

#include <gtkmm.h>
class ExampleWindow : public Gtk::Window
{
public:ExampleWindow(){// 设置窗口标题set_title("GTKMM 4 Vertical Multi-Pane Example");// 创建框,用于放在分割窗口中auto box1 = Gtk::make_managed<Gtk::Box>(Gtk::Orientation::VERTICAL,10);auto box2 = Gtk::make_managed<Gtk::Box>(Gtk::Orientation::VERTICAL,10);auto box3 = Gtk::make_managed<Gtk::Box>(Gtk::Orientation::VERTICAL,10);auto pLabel1 = Gtk::make_managed<Gtk::Label>("This is Box 1");box1->append(*pLabel1); //add *pButton to MyContainerauto pLabel2 = Gtk::make_managed<Gtk::Label>("This is Box 2");box2->append(*pLabel2); //add *pButton to MyContainerauto pLabel3 = Gtk::make_managed<Gtk::Label>("This is Box 3");box3->append(*pLabel3); //add *pButton to MyContainer// 添加一些控件到框中// 创建第一个垂直分割窗口
//        Gtk::Paned vpane1;auto vpane1 = Gtk::make_managed<Gtk::Paned>();vpane1->set_start_child(*box1);vpane1->set_end_child(*box2);// 创建第二个垂直分割窗口,并将第一个分割窗口和第三个框放入其中auto vpane2 = Gtk::make_managed<Gtk::Paned>();vpane2->set_start_child(*vpane1);vpane2->set_end_child(*box3);// 设置初始分割位置vpane1->set_position(100); // 第一个分割窗口的位置vpane2->set_position(200); // 第二个分割窗口的位置// 将第二个分割窗口添加到主窗口中this->set_child(*vpane2);}
};int main(int argc, char *argv[])
{auto app = Gtk::Application::create("org.gtkmm.example");// 显示窗口return app->make_window_and_run<ExampleWindow>(argc, argv);
}

也可以换种写法 都差不多

#include <gtkmm.h>
Glib::RefPtr<Gtk::Application> app = nullptr;
class ExampleWindow : public Gtk::Window
{
public:ExampleWindow(){// 设置窗口标题set_title("GTKMM 4 Vertical Multi-Pane Example");// 创建框,用于放在分割窗口中auto box1 = Gtk::make_managed<Gtk::Box>(Gtk::Orientation::VERTICAL,10);auto box2 = Gtk::make_managed<Gtk::Box>(Gtk::Orientation::VERTICAL,10);auto box3 = Gtk::make_managed<Gtk::Box>(Gtk::Orientation::VERTICAL,10);auto pLabel1 = Gtk::make_managed<Gtk::Label>("This is Box 1");box1->append(*pLabel1); //add *pButton to MyContainerauto pLabel2 = Gtk::make_managed<Gtk::Label>("This is Box 2");box2->append(*pLabel2); //add *pButton to MyContainerauto pLabel3 = Gtk::make_managed<Gtk::Label>("This is Box 3");box3->append(*pLabel3); //add *pButton to MyContainer// 添加一些控件到框中// 创建第一个垂直分割窗口
//        Gtk::Paned vpane1;auto vpane1 = Gtk::make_managed<Gtk::Paned>();vpane1->set_start_child(*box1);vpane1->set_end_child(*box2);// 创建第二个垂直分割窗口,并将第一个分割窗口和第三个框放入其中auto vpane2 = Gtk::make_managed<Gtk::Paned>();vpane2->set_start_child(*vpane1);vpane2->set_end_child(*box3);// 设置初始分割位置vpane1->set_position(100); // 第一个分割窗口的位置vpane2->set_position(200); // 第二个分割窗口的位置// 将第二个分割窗口添加到主窗口中this->set_child(*vpane2);}
};
void On_app_activate(){auto EXWindow= Gtk::make_managed<ExampleWindow>();app->add_window(*EXWindow);EXWindow->set_visible();
}
int main(int argc, char *argv[])
{app = Gtk::Application::create("org.gtkmm.example");// 显示窗口app->signal_activate().connect([] (){On_app_activate();});return app->run(argc, argv);
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/460238.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

蓝桥杯(Web大学组)2022国赛真题:水果消消乐

思路&#xff1a; 记录点击次数&#xff0c;点击次数为1时&#xff0c;记录点击下标&#xff08;用于隐藏or消除&#xff09;、点击种类&#xff0c;点击次数为2时&#xff0c;判断该下标所对应种类与第一次是否相同 相同&#xff1a;两个都visibility:hidden &#xff08;占…

汽车控制臂的拓扑优化

前言 本示例使用优化模块通过减小控制臂的体积同时最大化其刚度来优化汽车控制臂的设计。 本页讨论 前言应用描述Abaqus建模方法和仿真技术文件参考 应用描述 本例说明了汽车控制臂的拓扑优化&#xff0c;在拓扑优化过程中&#xff0c;修改设计区域中单元的材料特性(有效地从…

第62讲商品搜索动态实现以及性能优化

商品搜索后端动态获取数据 后端动态获取数据&#xff1a; /*** 商品搜索* param q* return*/GetMapping("/search")public R search(String q){List<Product> productList productService.list(new QueryWrapper<Product>().like("name", q)…

四.Linux实用操作 8-11.网络请求和下载.端口进程管理主机状态监控

目录 四.Linux实用操作 8.网络请求和下载 ping命令 wget命令--下载网络文件 curl命令--发送网络请求/下载文件 四.Linux实用操作 9.端口 端口 端口&#xff08;虚拟&#xff09; 端口&#xff08;号&#xff09; 查看端口占用 四.Linux实用操作 10.进程管理 查看进程…

位运算01 插入[C++]

图源&#xff1a;文心一言 上机题目练习整理&#xff0c;位运算&#xff0c;供小伙伴们参考~&#x1f95d;&#x1f95d; 网页版目录在页面的右上角↗~&#x1f95d;&#x1f95d; 第1版&#xff1a;在力扣新手村刷题的记录~&#x1f9e9;&#x1f9e9; 编辑&#xff1a;梅…

C语言特殊指针

1 野指针 概念&#xff1a;指向一块未知区域的指针&#xff0c;被称为野指针。野指针是危险的。 危害&#xff1a; 引用野指针&#xff0c;相当于访问了非法的内存&#xff0c;常常会导致段错误&#xff08;segmentation fault&#xff09;引用野指针&#xff0c;可能会破坏系…

恒流源方案对比

1、双运放恒流源 2、运放三极管放大电路组成的恒流源 5A 3、运放三极管组成的恒流源 200uA 4、运放MOS管组成的恒流源 100mA 5、电源模块并联输出100A恒流

百面嵌入式专栏(面试题)C语言面试题22道

沉淀、分享、成长,让自己和他人都能有所收获!😄 📢本篇我们将介绍C语言相关面试题 。 宏定义是在编译的哪个阶段被处理的?答案:宏定义是在编译预处理阶段被处理的。 解读:编译预处理:头文件包含、宏替换、条件编译、去除注释、添加行号。 写一个“标准”宏MIN,这个…

极限的反问题【高数笔记】

1. 什么是极限反问题&#xff1f; 2. 极限反问题分为几类&#xff1f; 3. 每一类极限反问题的具体做法是什么&#xff1f; 4. 每一类极限反问题具体做法是否有前提条件&#xff1f; 5. 例题&#xff1f;

CDN相关和HTTP代理

CDN相关和HTTP代理 参考&#xff1a; 《透视 HTTP 协议》——chrono 把这两个放在一起是因为容易搞混&#xff0c;我一开始总以为CDN就是HTTP代理&#xff0c;但是看了极客时间里透视HTTP协议的讲解&#xff0c;感觉又不仅于此&#xff0c;于是专门写下来。 先说结论&#xf…

数据结构:双向链表

文章目录 1. 双向带头循环链表的结构2. 相关操作2.1 创建节点2.2 尾插2.3 头插2.4 打印2.5 尾删2.6 头删2.7 查找2.8 指定位置前/后插入2.9 删除指定位置的节点2.10 删除指定位置后的节点2.11 销毁链表 3.顺序表与链表区别 1. 双向带头循环链表的结构 与单链表不同的是&#xf…

javaEE - 24( 20000 字 Servlet 入门 -2 )

一&#xff1a; Servlet API 详解 1.1 HttpServletResponse Servlet 中的 doXXX 方法的目的就是根据请求计算得到相应, 然后把响应的数据设置到HttpServletResponse 对象中. 然后 Tomcat 就会把这个 HttpServletResponse 对象按照 HTTP 协议的格式, 转成一个字符串, 并通过S…