⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 callbacks.c

📁 Gtk+,glade3 部件应用示例源代码。
💻 C
📖 第 1 页 / 共 2 页
字号:
	if (gtk_dialog_run (GTK_DIALOG (dialog)) == GTK_RESPONSE_ACCEPT)	{		gchar *filename;		filename = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (dialog));			gtk_entry_set_text(mwin->p1_entry_FilePathName, filename);		gtk_image_set_from_file(mwin->p1_image, filename);		filename_for_existing_document = g_strdup(filename);		user_edited_a_new_document = FALSE;		g_free (filename);	}		gtk_widget_destroy (dialog);}voidon_Save_clicked(GtkWidget* w, gpointer user_data){	printf("func cb Save\n");	GtkWidget *dialog;		dialog = gtk_file_chooser_dialog_new ("保存文件",										  mwin->window,										  GTK_FILE_CHOOSER_ACTION_SAVE,										  GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,										  GTK_STOCK_SAVE, GTK_RESPONSE_ACCEPT,										  NULL);	gtk_file_chooser_set_do_overwrite_confirmation(GTK_FILE_CHOOSER (dialog), TRUE);		// 处理保存路径及文件名	if (user_edited_a_new_document)	{		gtk_file_chooser_set_current_folder(GTK_FILE_CHOOSER (dialog),											default_folder_for_saving);		gtk_file_chooser_set_current_name(GTK_FILE_CHOOSER(dialog), "未命名");	}	else		gtk_file_chooser_set_filename(GTK_FILE_CHOOSER (dialog),									  filename_for_existing_document);			if (gtk_dialog_run (GTK_DIALOG (dialog)) == GTK_RESPONSE_ACCEPT)	{		char *filename;				filename = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (dialog));		//~ save_to_file (filename);		g_free (filename);	}		gtk_widget_destroy (dialog);	}// Action Callbackvoidon_btn_OK_clicked(GtkWidget* w, gpointer user_data){	printf("func cb ok\n");		//FILE* file;	//const gchar* filename;	GtkTextBuffer* tbuf;	GtkTextIter start, end;	tbuf = gtk_text_view_get_buffer (GTK_TEXT_VIEW (mwin->p2_textview));		//gtk_text_buffer_set_text (tbuf, "Hello, this is some text", -1);	gtk_text_buffer_get_iter_at_offset(tbuf, &start, 7);	gtk_text_buffer_get_iter_at_offset(tbuf, &end, 12);	gchar* text_fv= gtk_text_buffer_get_text(tbuf, &start, &end, TRUE);	gtk_entry_set_text(mwin->p2_entry_text, text_fv);	//filename = gtk_entry_get_text(mwin->p1_entry_FilePathName);	//file = fopen(filename, "r+");	//gtk_text_view_set_buffer(mwin->p2_textview, file);		//fclose(file);	}voidon_btn_Apply_clicked(GtkWidget* w, gpointer user_data){	printf("func cb apply\n");		gdouble pb = 0.0;	int i;	for (i = 0; i < 1000-1; i++)	{		pb = pb + 0.001;		gtk_progress_bar_set_text(mwin->progressbar, "progressing");		gtk_progress_bar_set_fraction(mwin->progressbar, pb);		//sleep(1);	}}voidon_btn_Undo_clicked(GtkWidget* w, gpointer user_data){	printf("func cb undo\n");	gtk_progress_bar_set_fraction(mwin->progressbar, 0.0);}// FileChooserButton Callbackvoidon_page1_btn_filechooser_file_set(GtkWidget* w, gpointer user_data){	const gchar* filename;	filename = gtk_file_chooser_get_filename(GTK_FILE_CHOOSER (w));	gtk_image_set_from_file(mwin->p1_image, filename);	}// page 3voidon_page3_radiobutton1_toggled(GtkWidget *w, gpointer data){	gboolean t = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(w));	if (t)	{	    		GtkDialog *dlg =			(GtkDialog*)gtk_dialog_new_with_buttons("dialog",													GTK_WINDOW(mwin->window),													GTK_DIALOG_MODAL,													GTK_STOCK_OK,													GTK_RESPONSE_ACCEPT,													GTK_STOCK_CANCEL,													GTK_RESPONSE_REJECT,													NULL);		gtk_dialog_run(GTK_DIALOG(dlg));		gtk_widget_destroy((GtkWidget*)dlg);	}}voidon_page3_radiobutton2_toggled(GtkWidget *w, gpointer data){	gboolean t = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(w));	if (t)	{	 	GtkWidget *dialog;		dialog = gtk_message_dialog_new (mwin->window,										 GTK_DIALOG_DESTROY_WITH_PARENT,										 GTK_MESSAGE_ERROR,										 GTK_BUTTONS_CLOSE,										 "模式消息框: '%s': %s",										 "strings", "Model Message Dialog.");		gtk_dialog_run(GTK_DIALOG(dialog));		gtk_widget_destroy (dialog);	}}voidon_page3_radiobutton3_toggled(GtkWidget *w, gpointer data){	gboolean t = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(w));	if (t)	{	 	GtkWidget *dialog;		dialog = gtk_message_dialog_new (mwin->window,										 GTK_DIALOG_DESTROY_WITH_PARENT,										 GTK_MESSAGE_INFO,										 GTK_BUTTONS_CLOSE,										 "无模式消息框: '%s': %s",										 "strings", "Modeless Message Dialog.");		/* Destroy the dialog when the user responds to it (e.g. clicks a button) */		g_signal_connect_swapped (dialog, "response",								  G_CALLBACK (gtk_widget_destroy),								  dialog);		gtk_widget_show(dialog);	}}// popop menu// Signal handler which displays a popup menu.static gintpopup_handler_window(GtkWidget *widget, GdkEvent *event){	printf("func event handler window popup \n");	GtkMenu *menu;	GdkEventButton *event_button;	g_return_val_if_fail (widget != NULL, FALSE);	g_return_val_if_fail (GTK_IS_MENU (widget), FALSE);	g_return_val_if_fail (event != NULL, FALSE);	/* The "widget" is the menu that was supplied when 	 * g_signal_connect_swapped() was called.	 */	menu = GTK_MENU (widget);	if (event->type == GDK_BUTTON_PRESS)    {		event_button = (GdkEventButton *) event;		if (event_button->button == 3)		{			gtk_menu_popup (menu, NULL, NULL, NULL, NULL, 							event_button->button, event_button->time);			return TRUE;		}    }	return FALSE;}/* Prototype for selection handler callback */voidon_treeview_selection_changed(GtkTreeSelection *selection, gpointer data){	printf("func tree selection changed\n");	GtkTreeIter iter;	GtkTreeModel *model;	gchar *title, *author;	gboolean checked = FALSE;		if (gtk_tree_selection_get_selected (selection, &model, &iter))	{		gtk_tree_model_get (model, &iter, 							TITLE_COLUMN, &title, 							AUTHOR_COLUMN, &author, 							CHECKED_COLUMN, &checked, -1);				g_print ("You selected a book \n<<%s>> by <%s>, Checked Out:%s\n",				 title, author, checked?"TRUE":"FALSE");				g_free (author);	}	}voidon_treeview_row_activated(GtkTreeView       *tree_view,						  GtkTreePath       *path,						  GtkTreeViewColumn *column,						  gpointer           user_data) {	printf("func tree row activate\n");		}voidon_page3_combobox1_changed(GtkComboBox *widget, gpointer user_data){	GtkTreeIter iter;	gchar *activetext = gtk_combo_box_get_active_text(widget);		gtk_combo_box_get_active_iter(widget, &iter);		if (*activetext == 'a')	{		gtk_combo_box_insert_text(widget, 0, "new item");	}		if (*activetext == 'r')	{		gtk_combo_box_remove_text(widget, 0);	}			}voidon_page3_spinbutton1_value_changed (GtkSpinButton *spinbutton,								   GtkScrollType  arg1,								   gpointer       user_data){	gdouble value = gtk_spin_button_get_value(spinbutton);	gchar *str;	str = g_new0(char, 80);	sprintf(str, "数值已改变:%lf", value);	MessageBox(str);		g_free(str);}voidon_page3_vscale1_value_changed(GtkRange *range, gpointer  user_data){	gdouble value = gtk_range_get_value(range);	gtk_range_set_value(GTK_RANGE(mwin->p3_hscale), value);		gchar *str;	str = g_new0(char, 20);	sprintf(str, "%.2f%%", value*100/90.0);	gtk_progress_bar_set_text(mwin->progressbar, str);	gtk_progress_bar_set_fraction(mwin->progressbar, value/90.0);}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -