在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。

提前致谢。

最佳答案

采用

gtk_widget_set_can_focus(ur)


代替

GTK_WIDGET_UNSET_FLAGS(ur, GTK_CAN_FOCUS);


documentation

关于c - GTK C-已弃用“GtkStock”和“GTK_CAN_FOCUS”,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24323206/

10-13 05:25