GTK gossip: gtkfilechooserbutton and gtkfilechooserdialog

Source: Internet
Author: User
In
When opening a legal case or another legal case in the program, the legal representative will be used to allow users to conveniently select or decide the legal case name, the gtkfilechooserbutton can provide
For the response function of the caller, you can use gtk_file_chooser_button_new () to create a tag. When using this function, you must specify the gtkfilechooseraction
:

  • Gtk_file_chooser_action_open: select the target speaker
  • Gtk_file_chooser_action_save:
    The caller of the stored statement
  • Gtk_file_chooser_action_select_folder:
    Target Audience
  • Gtk_file_chooser_action_create_folder:
    Establish the Peer Information

Gtkfilechooserbutton
Implemented the gtkfilechooser Interface
,You
You can use gtk_file_chooser_set_filename () to set the caller's current file name. Use
Gtk_file_chooser_get_filename () to obtain the current partition name. Use
Gtk_file_chooser_set_current_folder () is used to set the current object name.

The caller can set the upload name to pass through. This requires gtkfilefilter, which can be created using gtk_file_filter_new (). For example:

Gtkfilefilter * filter1 = gtk_file_filter_new ();


Gtkfilefilter *
Filter2 = gtk_file_filter_new ();


Gtk_file_filter_set_name (filter1, "Images Files ");


Gtk_file_filter_set_name (filter2, "All Files ");


Gtk_file_filter_add_pattern (filter1, "*. PNG ");


Gtk_file_filter_add_pattern (filter1, "*. XPM ");


Gtk_file_filter_add_pattern (filter1, "*. jpg ");


Gtk_file_filter_add_pattern (filter2 ,"*");


The following program is a simple example. You can use the gtkfilechooserdialog command to select the upload case and display the name on the gtklabel:

  • Gtk_file_chooser_button_demo.c
# Include <GTK/GTK. h>

Void file_changed (gtkfilechooserbutton * button, gtklabel * label ){
Gchar * file = gtk_file_chooser_get_filename (gtk_file_chooser (button ));
Gtk_label_set_text (Label, file );
}

Int main (INT argc, char * argv []) {
Gtkwidget * window;
Gtkwidget * label;
Gtkwidget * button;
Gtkfilefilter * filter1, * filter2;
Gtkwidget * box;
Const gchar * filename = "/home/caterpillar/workspace/caterpillar.gif ";

Gtk_init (& argc, & argv );
Window = gtk_window_new (gtk_window_toplevel );
Gtk_window_set_title (gtk_window (window), "gtkfilechooserbutton ");

Button = gtk_file_chooser_button_new (
"Select case", gtk_file_chooser_action_open );
Gtk_file_chooser_set_filename (gtk_file_chooser (button), filename );

Filter1 = gtk_file_filter_new ();
Filter2 = gtk_file_filter_new ();
Gtk_file_filter_set_name (filter1, "image files ");
Gtk_file_filter_set_name (filter2, "All Files ");
Gtk_file_filter_add_pattern (filter1, "*. PNG ");
Gtk_file_filter_add_pattern (filter1, "*. GIF ");
Gtk_file_filter_add_pattern (filter1, "*. jpg ");
Gtk_file_filter_add_pattern (filter2 ,"*");
Gtk_file_chooser_add_filter (gtk_file_chooser (button), filter1 );
Gtk_file_chooser_add_filter (gtk_file_chooser (button), filter2 );

Label = gtk_label_new (filename );

Box = gtk_vbox_new (true, 5 );
Gtk_box_pack_start (gtk_box (box), button, true, true, 5 );
Gtk_box_pack_start (gtk_box (box), label, true, true, 5 );

Gtk_container_add (gtk_container (window), box );

G_signal_connect (gtk_object (window), "Destroy ",
G_callback (gtk_main_quit), null );
G_signal_connect (gtk_object (button), "selection_changed ",
G_callback (file_changed), label );

Gtk_widget_show_all (window );

Gtk_main ();

Return 0;
}

The external region during the initial row is as follows:

When selecting an example, the caller's external region is as follows:


Press the operator to generate the gtkfilechooserdialog,
Gtkfilechooserdialog is the combination of gtkfilechooserwidget and gtkdialog,
Gtkfilechooserwidget can be embedded with other components, either gtkfilechooserbutton or,
The gtkfilechooserdialog and gtkfilechooserwidget interfaces are available.

In gtkfilechooser, set the function or perform related operations.

The following program uses gtkfilechooserdialog to implement the following examples:

  • Gtk_file_chooser_dialog_demo.c
# Include <GTK/GTK. h>

Void file_changed (gtkbutton * button, gtkwidget ** widgets ){
Gtkwidget * dialog = gtk_file_chooser_dialog_new (
"Save another token...", gtk_window (widgets [0]),
Gtk_file_chooser_action_save,
Gtk_stock_cancel, gtk_response_cancel,
Gtk_stock_save, gtk_response_accept,
Null
);

Gtkfilefilter * filter1 = gtk_file_filter_new ();
Gtkfilefilter * filter2 = gtk_file_filter_new ();
Gtk_file_filter_set_name (filter1, "image files ");
Gtk_file_filter_set_name (filter2, "All Files ");
Gtk_file_filter_add_pattern (filter1, "*. PNG ");
Gtk_file_filter_add_pattern (filter1, "*. GIF ");
Gtk_file_filter_add_pattern (filter1, "*. jpg ");
Gtk_file_filter_add_pattern (filter2 ,"*");
Gtk_file_chooser_add_filter (gtk_file_chooser (DIALOG), filter1 );
Gtk_file_chooser_add_filter (gtk_file_chooser (DIALOG), filter2 );

If (gtk_dialog_run (gtk_dialog (DIALOG) = gtk_response_accept ){
Gchar * filename = gtk_file_chooser_get_filename (
Gtk_file_chooser (DIALOG ));
Gtk_label_set_text (gtk_label (widgets [1]), filename );
G_free (filename );
}

Gtk_widget_destroy (DIALOG );
}

Int main (INT argc, char * argv []) {
Gtkwidget * window;
Gtkwidget * label;
Gtkwidget * button;
Gtkwidget * box;
Gtkwidget * widgets [2];
Const gchar * filename = "/home/caterpillar/workspace/caterpillar.gif ";

Gtk_init (& argc, & argv );
Window = gtk_window_new (gtk_window_toplevel );
Gtk_window_set_title (gtk_window (window), "gtkfilechooserdialog ");

Button = gtk_button_new_with_label ("select region ");
Label = gtk_label_new (filename );

Box = gtk_vbox_new (true, 5 );
Gtk_box_pack_start (gtk_box (box), button, true, true, 5 );
Gtk_box_pack_start (gtk_box (box), label, true, true, 5 );

Gtk_container_add (gtk_container (window), box );

Widgets [0] = window;
Widgets [1] = label;

G_signal_connect (gtk_object (window), "Destroy ",
G_callback (gtk_main_quit), null );
G_signal_connect (gtk_object (button), "clicked ",
G_callback (file_changed), Widgets );

Gtk_widget_show_all (window );

Gtk_main ();

Return 0;
}


 



Bloggerads warning
Will it dry in winter, and I am afraid to wipe the lotion?
When a man's baby falls into the insurance market, the man's "Oil Control and oil control" oil control and maintenance are done once! You can select a full range of products immediately!
More messages ..
Shengsheng, chaohan water system, free of charge
Chao Han shuishui Shu, let you always love this fu ~ You can also smoke iPod Nano! IPhone 4
More messages ..
Impr


Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.