我正在尝试使用C编写一个GTK+3应用程序。
我创建了一个包含动作的Glade文件,其ID为“tracks_deck.add_empty_track”。
我将该动作连接到工具栏项和菜单项。
问题是如何将函数连接到该动作?
我有以下C代码:
我创建了一个包含动作的Glade文件,其ID为“tracks_deck.add_empty_track”。
我将该动作连接到工具栏项和菜单项。
问题是如何将函数连接到该动作?
我有以下C代码:
#include <gtk/gtk.h>
#define UI_FILE "tuxmusicstudio.glade"
#define TOP_WINDOW "application_window"
int main (int argc, char *argv[])
{
GtkWidget *main_window;
GtkBuilder *builder;
GError *error = NULL;
GtkAction *action;
gtk_init (&argc, &argv);
builder = gtk_builder_new();
if (!gtk_builder_add_from_file(builder, UI_FILE, &error)) {
g_critical("couldn't load builder file: %s",error->message);
g_error_free(error);
}
/* create the main, top level, window */
main_window = GTK_WIDGET(gtk_builder_get_object(builder, TOP_WINDOW));
if (!main_window) {
g_critical("widget \"%s\" is missing in file %s.",TOP_WINDOW,UI_FILE);
}
action = GTK_ACTION(gtk_builder_get_object(builder, "tracks_deck.add_empty_track"));
if (!action) {
g_critical("could not fetch action tracks_deck.empty_track");
}
gtk_widget_show_all (main_window);
/* start the main loop, and let it rest there until the application is closed */
gtk_main ();
return 0;
所以你可以看到,我正在尝试获取GtkAction以便连接一个函数。 编译器正在编译这一行已经过时了:
main.c:46:5: warning: ‘gtk_action_get_type’ is deprecated (declared at /usr/include/gtk-3.0/gtk/deprecated/gtkaction.h:87) [-Wdeprecated-declarations]
action = GTK_ACTION(gtk_builder_get_object(builder, "tracks_deck.add_empty_track"));
^
那么,我如何使用一些未被弃用的函数来获取GtkAction?并且如何将C函数连接到该操作?!
对于这个问题,任何想法都将不胜感激。