![在 C 中添加 gtk3 加速器](https://linux22.com/image/1195997/%E5%9C%A8%20C%20%E4%B8%AD%E6%B7%BB%E5%8A%A0%20gtk3%20%E5%8A%A0%E9%80%9F%E5%99%A8.png)
我正在尝试在 gtk3 中为我的应用实现加速器。我从 github 上的一篇文章中找到了如何做到这一点。
#include <stdio.h>
#include <gtk/gtk.h>
// This is a callback that will be called when the accelerator is
// pressed.
void accelerator_pressed(void)
{
printf("accelerator_pressed\n");
}
int main(int argc, char** argv)
{
gtk_init(&argc, &argv);
GtkWidget* window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
GClosure* closure = g_cclosure_new(accelerator_pressed, 0, 0);
// Set up the accelerator group.
GtkAccelGroup* accel_group = gtk_accel_group_new();
gtk_accel_group_connect(accel_group,
GDK_KEY_A,
GDK_CONTROL_MASK,
0,
closure);
gtk_window_add_accel_group(GTK_WINDOW(window), accel_group);
// Quit the app when the window is closed.
g_signal_connect(window, "destroy", G_CALLBACK(gtk_main_quit), NULL);
// Display the top level window.
gtk_widget_show(window);
gtk_main();
return 0;
}
我的问题是如何在不创建窗口的情况下实现它。