gtk3 - 使用 GSimpleAction 时保留快捷键

2023-12-29

在 gtk3 中,可以使用以下命令将加速键和路径保存到文件中:gtk_accel_map https://developer.gnome.org/gtk3/stable/gtk3-Accelerator-Maps.html#gtk-accel-map-lookup-entry。用户可以通过编辑相关文件来自定义快捷方式。

现在我将使用 GSimpleAction 来替换已弃用的 Gtk Action 接口。

那么如何获取所需的参数gtk_accel_map_add_entry https://developer.gnome.org/gtk3/stable/gtk3-Accelerator-Maps.html#gtk-accel-map-add-entry出于 GSimpleAction (或出于 GActionMap?),以便我可以保留它?

我这样定义 GSimpleAction:

void callback ( GSimpleAction *action, GVariant *parameter, gpointer user_data )
{
    g_print ( "<Ctrl>k pressed\n" );
}

static GActionEntry actions[] = {
  { "test", callback, NULL, NULL, NULL },
};

... // Inside application_startup (GApplication *gapp):
  g_action_map_add_action_entries(G_ACTION_MAP(application), actions, G_N_ELEMENTS(actions), NULL);

  const char *accels[] = {"<Ctrl>k", NULL};
  gtk_application_set_accels_for_action (application, "app.test", accels);
...

可能相关:最近我了解到gtk_accel_map 将在 gtk4 中消失 https://gitlab.gnome.org/GNOME/gtk/-/issues/2375#note_817764


你不能使用GtkAccelMapGAction API. GAction本身没有“演示性”信息。

加速器由GtkApplication实例,您可以查询gtk_application_get_accels_for_action() https://developer.gnome.org/gtk3/stable/GtkApplication.html#gtk-application-get-accels-for-action;您需要保留您感兴趣的操作列表,因为没有 API 可以迭代与某个操作相关的操作GtkApplication.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

gtk3 - 使用 GSimpleAction 时保留快捷键 的相关文章

  • 在一个数据访问层中处理多个连接字符串

    我有一个有趣的困境 我目前有一个数据访问层 它必须与多个域一起使用 并且每个域都有多个数据库存储库 具体取决于所调用的存储过程 目前 我只需使用 SWITCH 语句来确定应用程序正在运行的计算机 并从 Web config 返回适当的连接字
  • 机器Epsilon精度差异

    我正在尝试计算 C 中双精度数和浮点数的机器 epsilon 值 作为学校作业的一部分 我在 Windows 7 64 位中使用 Cygwin 代码如下 include
  • 随着时间的推移,添加到 List 变得非常慢

    我正在解析一个大约有 1000 行的 html 表 我从一个字符串中添加 10 个字符串 td 每行到一个list td
  • 如何从本机 C(++) DLL 调用 .NET (C#) 代码?

    我有一个 C app exe 和一个 C my dll my dll NET 项目链接到本机 C DLL mynat dll 外部 C DLL 接口 并且从 C 调用 C DLL 可以正常工作 通过使用 DllImport mynat dl
  • 从经典 ASP 调用 .Net C# DLL 方法

    我正在开发一个经典的 asp 项目 该项目需要将字符串发送到 DLL DLL 会将其序列化并发送到 Zebra 热敏打印机 我已经构建了我的 DLL 并使用它注册了regasm其次是 代码库这使得 IIS 能够识别它 虽然我可以设置我的对象
  • 无限循环与无限递归。两者都是未定义的吗?

    无副作用的无限循环是未定义的行为 看here https coliru stacked crooked com view id 24e0a58778f67cd4举个例子参考参数 https en cppreference com w cpp
  • 对类 static constexpr 结构的未定义引用,g++ 与 clang

    这是我的代码 a cp p struct int2 int x y struct Foo static constexpr int bar1 1 static constexpr int2 bar2 1 2 int foo1 return
  • 需要帮助优化算法 - 两百万以下所有素数的总和

    我正在尝试做一个欧拉计划 http projecteuler net问题 我正在寻找 2 000 000 以下所有素数的总和 这就是我所拥有的 int main int argc char argv unsigned long int su
  • 方程“a + bx = c + dy”的积分解

    在等式中a bx c dy 所有变量都是整数 a b c and d是已知的 我如何找到整体解决方案x and y 如果我的想法是正确的 将会有无限多个解 由最小公倍数分隔b and d 但我只需要一个解决方案 我可以计算其余的 这是一个例
  • ASP.NET Core 3.1登录后如何获取用户信息

    我试图在登录 ASP NET Core 3 1 后获取用户信息 如姓名 电子邮件 id 等信息 这是我在登录操作中的代码 var claims new List
  • 如何获取 EF 中与组合(键/值)列表匹配的记录?

    我有一个数据库表 其中包含每个用户 年份组合的记录 如何使用 EF 和用户 ID 年份组合列表从数据库获取数据 组合示例 UserId Year 1 2015 1 2016 1 2018 12 2016 12 2019 3 2015 91
  • 结构体的内存大小不同?

    为什么第一种情况不是12 测试环境 最新版本的 gcc 和 clang 64 位 Linux struct desc int parts int nr sizeof desc Output 16 struct desc int parts
  • C# - 当代表执行异步任务时,我仍然需要 System.Threading 吗?

    由于我可以使用委托执行异步操作 我怀疑在我的应用程序中使用 System Threading 的机会很小 是否存在我无法避免 System Threading 的基本情况 只是我正处于学习阶段 例子 class Program public
  • 为什么 C# 2.0 之后没有 ISO 或 ECMA 标准化?

    我已经开始学习 C 并正在寻找标准规范 但发现大于 2 0 的 C 版本并未由 ISO 或 ECMA 标准化 或者是我从 Wikipedia 收集到的 这有什么原因吗 因为编写 审查 验证 发布 处理反馈 修订 重新发布等复杂的规范文档需要
  • C 编程:带有数组的函数

    我正在尝试编写一个函数 该函数查找行为 4 列为 4 的二维数组中的最大值 其中二维数组填充有用户输入 我知道我的主要错误是函数中的数组 但我不确定它是什么 如果有人能够找到我出错的地方而不是编写新代码 我将不胜感激 除非我刚去南方 我的尝
  • 在 WPF 中使用 ReactiveUI 提供长时间运行命令反馈的正确方法

    我有一个 C WPF NET 4 5 应用程序 用户将用它来打开某些文件 然后 应用程序将经历很多动作 读取文件 通过许多插件和解析器传递它 这些文件可能相当大 gt 100MB 因此这可能需要一段时间 我想让用户了解 UI 中发生的情况
  • C# 中的 IPC 机制 - 用法和最佳实践

    不久前我在 Win32 代码中使用了 IPC 临界区 事件和信号量 NET环境下场景如何 是否有任何教程解释所有可用选项以及何时使用以及为什么 微软最近在IPC方面的东西是Windows 通信基础 http en wikipedia org
  • C++ 中的 include 和 using 命名空间

    用于使用cout 我需要指定两者 include
  • 类型或命名空间“MyNamespace”不存在等

    我有通常的类型或命名空间名称不存在错误 除了我引用了程序集 using 语句没有显示为不正确 并且我引用的类是公共的 事实上 我在不同的解决方案中引用并使用相同的程序集来执行相同的操作 并且效果很好 顺便说一句 这是VS2010 有人有什么
  • 如何确定 CultureInfo 实例是否支持拉丁字符

    是否可以确定是否CultureInfo http msdn microsoft com en us library system globalization cultureinfo aspx我正在使用的实例是否基于拉丁字符集 我相信你可以使

随机推荐

  • Django-REST 中关系字段的 KeyError

    我有以下型号 class ProductColor models Model color title models CharField max length 50 class BasicProduct models Model produc
  • Laravel 迁移添加外键的最佳方式

    简单的问题 我是 Laravel 的新手 我有这个迁移文件 Schema create lists function Blueprint table table gt increments id table gt string title
  • 如何在 jquery 中使用单个取消委托方法删除多个事件委托

    我可以使以下内容变得更简单 而不是使用 取消委托 两次 吗 div1 undelegate div mouseenter undelegate div mouseleave 我不希望除 mouseenter 和 mouseleave 之外的
  • 哪些后端正在消耗 Google Container Engine Kubernetes 配额

    我正在尝试在 Google Container Engine 上的 Kubernetes 上设置 Ingress 但收到超出配额的错误 请参阅下面的简短输出 Name my ingress Address Default backend d
  • 基于表单字段的查询条件

    因此 我有一个查询 在其中选择一个字段并设置条件 以便它仅根据表单中特定字段的当前值选择记录 标准看起来像这样 Forms FORMAL CERT REVIEW CHECK FORM REVIEW CHECK ID 很简单的东西 但我遇到了
  • 基于 HR 标签,使用 Javascript/JQuery 将 HTML 拆分为 div

    我想根据 HR 标签将从 Web 服务收到的文章 HTML 内容 拆分到不同的 DIV 中 我用一个例子来解释 这是我从服务中收到的 p This is an article bla bla p hr p this is the next
  • MFC 获取文件夹

    嘿 我如何在 MFC 中获取所有文件夹的名称 有什么例子或者我应该研究哪些课程 任何提示将非常感激 我所看到的只是 CFile 据我所见 尽管非常非常少 它看起来没有能力做我想做的事情 所以请指导我 Thanks 调查C文件查找 http
  • 无法在设置中更改 Android 应用程序名称

    我使用 ADT Eclipse 中的向导创建了一个应用程序 我在 strings xml 中编辑了应用程序名称 这更改了启动器图标上的标签 但是 如果我进入 设置 gt 应用程序 它会显示旧名称 我尝试卸载该应用程序 清理并再次运行 但它仍
  • JavaScript - 无法正确添加 2 个数字

    我正在使用 Javascript 模拟计算器 用户可以在给定的文本框中输入 2 个数字 它将显示总和 乘积 差值和除法 这是我的功能 function calculate num1 num2 console log First Number
  • Python pip 无法在 Linux mint 上运行

    我已经遇到这个错误一年了 但仍然找不到解决方案 我正在使用 Linux Mint 17 3 每次我尝试使用 pip 安装某些东西时 都会遇到一堆异常 pip install U scikit learns Exception Traceba
  • 我可以从 .html 页面链接到 .ejs 页面吗?

    我正在制作一个网页 并且一直在 stackoverflow 上查找如何从 html 文件链接到 ejs 文件 人们在说以下内容 在index html中 li a href twitter Twitter a li 在 script js
  • 在 React 中单击组件外部时更改状态

    I have a dropdown as is shown in the following image 当我单击文件夹图标时 它会打开和关闭 因为showingProjectSelector属性处于设置为 false 的状态 constr
  • 熊猫由长到宽的重塑,通过两个变量

    我有长格式的数据 并且正在尝试将其重塑为宽格式 但似乎没有一种简单的方法可以使用熔化 堆叠 取消堆叠来执行此操作 Salesman Height product price Knut 6 bat 5 Knut 6 ball 1 Knut 6
  • Java JUnit 测试无法使用 @Before 注释

    嘿 com 开始进行 Java JUnit 测试并遇到有关 Before 注释的问题 我的设置 爪哇9 日食氧气 J单元5 如果我这样进行测试 package junittesting import org junit jupiter ap
  • 当控制流关闭函数结束而没有返回时,为什么仍然有返回值?

    include
  • ASP.Net MVC JQuery Ajax 调用不返回任何内容

    是否可以通过ajax 在我的例子中使用JQuery 从视图到控制器进行不返回任何内容的调用 我只是在会话中设置一些变量 没有可显示的输出 我尝试将控制器上的方法设置为无效 但它不起作用 现在我已将方法返回标记为 JsonResult 并且我
  • Java Swing JLayeredPane 未显示

    我似乎遇到了一些重大问题JLayeredPane 我有一个BorderLayout 我希望西侧元素包含一些相互重叠的 JLayeredPane 这样我就可以在它们之间切换以显示正确的信息 西窗格的宽度应为 200 像素 并且应与整个窗口一样
  • 是什么原因导致这里“无法动态调度扩展方法”?

    编译错误 System Data SqlClient SqlConnection 没有名为 Query 的适用方法 但似乎有一个使用该名称的扩展方法 扩展方法无法动态分派 考虑转换动态参数或在不使用扩展方法语法的情况下调用扩展方法 现在 我
  • event.toElement 在 IE8 和 Firefox 中?

    我注意到在 Chrome 和 IE9 中 onmouseout事件有一个event toElement属性 这样您就可以确定鼠标现在指向哪个元素 我在 Firefox 中找不到类似的属性 不幸的是我不能使用 jQuery 来处理这些事件 我
  • gtk3 - 使用 GSimpleAction 时保留快捷键

    在 gtk3 中 可以使用以下命令将加速键和路径保存到文件中 gtk accel map https developer gnome org gtk3 stable gtk3 Accelerator Maps html gtk accel