You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何为Gtk Menu按钮添加Exec xdotool key ctrl+m执行命令?

给GTK按钮绑定执行命令的方法

要把xdotool key ctrl+m命令绑定到"Menu"按钮上,只需对现有代码做以下修改:

  1. 添加必要头文件:因为要执行外部命令,需要引入<stdlib.h>。
  2. 定义点击回调函数:在函数内部调用system()执行目标命令。
  3. 绑定按钮点击信号:将按钮的clicked事件与回调函数关联。

修改后的完整代码

#include <gtk/gtk.h>
#include <stdlib.h>  // 用于system()函数

// 按钮点击回调函数
static void on_menu_button_clicked(GtkWidget *widget, gpointer data) {
    // 执行xdotool命令
    system("xdotool key ctrl+m");
}

int main(int argc, char **argv) {
    gtk_init(&argc, &argv);

    GtkWidget *window;
    GtkWidget *box;
    GtkWidget *button1;

    window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
    box = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0);

    button1 = gtk_button_new_with_label("Menu");
    // 绑定clicked信号到回调函数
    g_signal_connect(button1, "clicked", G_CALLBACK(on_menu_button_clicked), NULL);

    gtk_container_add(GTK_CONTAINER(window), box);
    gtk_box_pack_start(GTK_BOX(box), button1, TRUE, TRUE, 0);

    gtk_widget_show_all(window);
    gtk_main();
    return 0;
}

编译时记得链接GTK库,比如用命令:gcc -o gtk_menu_button gtk_menu_button.c pkg-config --cflags --libs gtk+-3.0``

内容的提问来源于stack exchange,提问作者RasatPC

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.13 21:22:38