如何为Gtk Menu按钮添加Exec xdotool key ctrl+m执行命令?
给GTK按钮绑定执行命令的方法
要把xdotool key ctrl+m命令绑定到"Menu"按钮上,只需对现有代码做以下修改:
- 添加必要头文件:因为要执行外部命令,需要引入
<stdlib.h>。 - 定义点击回调函数:在函数内部调用
system()执行目标命令。 - 绑定按钮点击信号:将按钮的
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
相关产品推荐
相关产品推荐

