|
GtkColorButton為用戶選擇顏色提供了一種比較簡(jiǎn)單方法,這些顏色值是有6個(gè)16進(jìn)制數(shù)或RGB直來組成。在Button控件內(nèi)部長(zhǎng)方形區(qū)域顯示所選中的顏色作為Button控件的子控件,這樣構(gòu)成GtkColorButton。當(dāng)你點(diǎn)擊它時(shí),他會(huì)彈出一個(gè)對(duì)話框供你選擇顏色。
GdkColor color;
gdk_color_parse ("#003366", &color);
button = gtk_color_button_new_with_color (&color);
gtk_color_button_set_title (GTK_COLOR_BUTTON (button), "Select a Color");上面的代碼創(chuàng)建了一個(gè)GtkColorButton。其中GdkColor的結(jié)構(gòu)成員如下:
struct GdkColor
{
guint32 pixel;
guint16 red;
guint16 green;
guint16 blue;
};其中piexl會(huì)自動(dòng)保存顏色的索引,不需要軟件人員去改變它的值。red、green、blue的范圍是0~65535。很多情況下我們都是通過“#003366”這樣的格式去獲取顏色的,在GTK中,要把"#003366"解析成GdkColor格式,需要通過函數(shù)gdk_color_parse來實(shí)現(xiàn)。至此,我們可以通過gtk_color_button_new_with_color來創(chuàng)建顏色選擇按鈕。
GtkFileChooserButton為用戶選擇文件或文件夾提供了一種比較簡(jiǎn)單方法。當(dāng)用戶點(diǎn)擊它時(shí),一個(gè)GtkFileChooserDialog將被打開允許用戶選擇文件或文件夾。
chooser1 = gtk_file_chooser_button_new ("Chooser a Folder", GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER);
chooser2 = gtk_file_chooser_button_new ("Chooser a Folder", GTK_FILE_CHOOSER_ACTION_OPEN);上面兩個(gè)函數(shù)是創(chuàng)建兩個(gè)GtkFileChooserButton,GtkFileChooserButton可以選擇單個(gè)文件或單個(gè)文件夾,這主要跟函數(shù)gtk_file_chooser_button_new的第二個(gè)參數(shù),第二個(gè)參數(shù)共有4個(gè)類型,這里只介紹兩種:
GTK_FILE_CHOOSER_ACTION_OPEN:表示用戶將選擇單個(gè)文件,可以通過濾波器來過來顯示的文件類型。
GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER:表示用戶將選擇單個(gè)文件夾。
gtk_file_chooser_set_current_folder (GTK_FILE_CHOOSER (chooser1),g_get_home_dir());
gtk_file_chooser_set_current_folder (GTK_FILE_CHOOSER (chooser2),g_get_home_dir());函數(shù)gtk_file_chooser_set_current_folder用來設(shè)置當(dāng)前讀入文件或文件夾目錄,也就是你點(diǎn)擊GtkFileChooserButton控件彈出的對(duì)話框中顯示的目錄。
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, "*.jpg");
gtk_file_filter_add_pattern (filter1, "*.gif");
gtk_file_filter_add_pattern (filter2, "*");函數(shù)gtk_file_filter_new創(chuàng)建文件濾波器,gtk_file_filter_add_pattern用來設(shè)置濾波參數(shù),比如上面提到的"*.png"等。至此,我們可以通過gtk_file_chooser_get_filename 函數(shù)來獲取你選擇文件或文件夾的名字。
GtkFontButton是另外一種特殊的按鈕控件,用來選擇系統(tǒng)內(nèi)的字體。
button = gtk_font_button_new_with_font ("Sans Bold 12");
gtk_font_button_set_title (GTK_FONT_BUTTON (button), "Choose a Font");通過函數(shù)gtk_font_button_new_with_font來創(chuàng)建GtkFontButton,帶的參數(shù)是一個(gè)字符串,包含字體的三個(gè)屬性,每個(gè)屬性中間用空格隔開;比如"Sans Bold 12"表示字體名字叫Sans,Bold表示字體加粗,12表示字體大小。
font = gtk_font_button_get_font_name (button);
desc = pango_font_description_from_string (font);
gtk_widget_modify_font (label, desc);函數(shù)gtk_font_button_get_font_name獲取選中的字體,返回的是一個(gè)字符串,格式跟"San Blod 12"一樣,pango_font_description_from_string用來解析字體。最后就可以通過函數(shù)gtk_widget_modify_font去改變控件的字體咯。
|
|