在C中GTK +出現少許問題後,我認爲我最終設法解決了最複雜的問題。 ;遺憾的是沒有/GTK C - `GtkStock'&`GTK_CAN_FOCUS`已棄用
使用的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);
謝謝!它幫助, – Abdizriel