GTK C - `GtkStock'& `GTK_CAN_FOCUS`已弃用

时间:2014-06-20 08:40:25

标签: c gtk

在使用C语言的GTK +几个问题之后,我认为我终于设法用复选框解决了我最大的问题。不幸的是没有; /

使用g_signal_connect后:

g_signal_connect (ur, "toggled",G_CALLBACK(user_read_only), (gpointer *)filename);

其中函数user_read_only是:

void user_read_only(GtkWidget *widget, gpointer *filename)
{
   if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget))){
       int stat;
       stat = chmod(data, S_IRUSR);
       printf("Added Read attribute to user in file: %s\n", (char *)filename);
   } else {
      printf("No Read attribute to user in file: %s\n", (char *)filename);
   }
}

我使用:

进行编译
gcc -o s8 s8.c `pkg-config --libs --cflags gtk+-2.0`

我收到以下警告:

    s8.c: In function ‘main’: 
    s8.c:49:1: warning: ‘GtkStock’ is deprecated [-Wdeprecated-declarations] dialog = gtk_file_chooser_dialog_new ("Open File",NULL,GTK_FILE_CHOOSER_ACTION_OPEN,GTK_STOCK_CANCEL,GTK_RESPONSE_CANCEL,GTK‌​_STOCK_OPEN,GTK_RESPONSE_ACCEPT,NULL); 
    ^ 
    s8.c:49:1: warning: ‘GtkStock’ is deprecated [-Wdeprecated-declarations] 
    s8.c:78:29: error: ‘GTK_CAN_FOCUS’ undeclared (first use in this function) 

    GTK_WIDGET_UNSET_FLAGS(ur, GTK_CAN_FOCUS); 

我正试图找到关于我应该怎么做的信息。网上出现此警告的唯一事情是尝试使用gtk + 3.0

有没有办法解决这个问题?我需要对话框让用户选择文件,用户可以设置chmods。

提前致谢。

2 个答案:

答案 0 :(得分:1)

如文档中所述,GTK_STOCK_OK和GTK_STOCK_CANCEL等按钮可以翻译为“_Ok”和“_Cancel”。

https://developer.gnome.org/gtk3/stable/gtk3-Stock-Items.html#GTK-STOCK-CANCEL:CAPS

答案 1 :(得分:0)

使用

gtk_widget_set_can_focus(ur)

而不是

GTK_WIDGET_UNSET_FLAGS(ur, GTK_CAN_FOCUS); 

documentation