c - 如何使用gtk_widget_add_accelerator?

标签 c linux gtk

我正在尝试构建一个 gtk 小部件,当按下 Escape 键时该小部件就会存在。 这是我的代码。

gtk_signal_connect (GTK_OBJECT(window), "delete-event",
                   GTK_SIGNAL_FUNC(gtk_main_quit), NULL);

/* FIXME */
GtkAccelGroup *accels = gtk_accel_group_new();
gtk_window_add_accel_group(GTK_WINDOW(window), accels);
gtk_widget_add_accelerator(window, "delete-event", accels,
                           GDK_Escape, 0, GTK_ACCEL_VISIBLE);

但是这样说是行不通的 小部件“GtkWindow”没有不带参数的可激活信号“删除事件”

怎么了?或者 还有其他方法可以实现这一目标吗?

最佳答案

问题是 delete-event 不是一个Action 信号。

通常会有一个退出菜单项,您可以将 Escape 键链接到菜单项的 activate 信号或退出按钮,您可以使用按钮的 clicked 信号。这些都是 Action 类型信号。

关于c - 如何使用gtk_widget_add_accelerator?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1165974/

相关文章:

c - 修改C消息队列程序以在Linux中使用

为 GTK+ 创建网格布局

c - 理解C中函数指针的问题

c - return 使指针来自整数而不进行强制转换 - 但类型可以吗?

python - 如何从桌面文件中获取 Exec 字段

linux - 我在这个 lex 程序中遇到无法识别的规则错误

java - 如何在 java 中创建 gnome gtk 通知?

c - 新线程中的 gtk flash 图像

C++ 作业 - 时尚还是性能?

c - 在不违反 C99 中严格的别名规则的情况下使用 void * 输入双关语