<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??一站式輕松地調用各大LLM模型接口,支持GPT4、智譜、豆包、星火、月之暗面及文生圖、文生視頻 廣告
                ### 顏色選擇 Color Selection 顏 色選擇(color selection)構件是一個用來交互式地選擇顏色的構件。這個組合構件讓用戶通過操縱RGB值(紅綠藍)和HSV值(色度、飽和度、純度)來選擇顏 色。這是通過調整滑動條(sliders)的值或者文本輸入構件的值,或者從一個色度/飽和度/純度條上選擇相應的顏色來實現的。你還可以通過它來設置顏 色的透明性。看下面的代碼例子: ![](https://box.kancloud.cn/2016-08-24_57bd77995cd95.jpg) ~~~ /*File:color.c *Date:2014-01-05 *Author:sjin *Mail:413977243@qq.com */ #include <gtk/gtk.h> #include <gdk/gdk.h> #include <glib.h> GtkWidget *colorseldlg = NULL; GtkWidget *drawingarea = NULL; GdkColor color; /*顏色改變處理信號*/ void color_changed_cb(GtkWidget *widget,GtkColorSelection *colorsel) { GdkColor ncolor; gtk_color_selection_get_current_color(colorsel,&ncolor); gtk_widget_modify_bg(drawingarea,GTK_STATE_NORMAL,&ncolor); } /*繪圖區事件處理函數*/ gint area_event(GtkWidget *widget,GdkEvent *event,gpointer client_data) { gint handled = FALSE; gint response; GtkColorSelection *colorsel; /*檢查是否收到鼠標按鍵按下*/ if(event->type == GDK_BUTTON_PRESS){ handled = TRUE; /*創建顏色選擇對話框*/ if(colorseldlg == NULL){ /*創建一個孤立的顏色選擇構件,并需要將其放在某個對話框*/ colorseldlg = gtk_color_selection_dialog_new("選擇背景顏色"); } /*獲取顏色選擇構件*/ colorsel = GTK_COLOR_SELECTION(GTK_COLOR_SELECTION_DIALOG(colorseldlg)->colorsel); gtk_color_selection_set_previous_color(colorsel,&color); gtk_color_selection_set_current_color(colorsel,&color); gtk_color_selection_set_has_palette(colorsel,TRUE); /*為color_changed 信號設置回調函數,將用戶數據設置為顏色選擇構件*/ g_signal_connect(GTK_OBJECT(colorsel),"color_changed",G_CALLBACK(color_changed_cb),(gpointer)colorsel); /*顯示對話框*/ response = gtk_dialog_run(GTK_DIALOG(colorseldlg)); if(response == GTK_RESPONSE_OK){ /*獲取當前顏色,并保存到color中*/ gtk_color_selection_get_current_color(colorsel,&color); }else{ /*設置成原來的顏色*/ gtk_widget_modify_bg(drawingarea,GTK_STATE_NORMAL,&color); } gtk_widget_hide(colorseldlg); } /*只有返回True,才能彈出顏色選擇控件*/ return handled; } /*關閉、退出事件處理函數*/ gint destroy_window(GtkWidget *widget,GdkEvent *event,gpointer client_data) { gtk_main_quit(); return TRUE; } int main( int argc, char *argv[] ) { /* GtkWidget 是構件的存儲類型 */ GtkWidget *window; GtkWidget *button; /* 這個函數在所有的 GTK 程序都要調用。參數由命令行中解析出來并且送到該程序中*/ gtk_init (&argc, &argv); /* 創建一個新窗口 */ window = gtk_window_new (GTK_WINDOW_TOPLEVEL); /*設置窗口標題*/ gtk_window_set_title(GTK_WINDOW(window),"My first program helloworld!"); /**/ gtk_window_set_policy(GTK_WINDOW(window),TRUE,TRUE,TRUE); /* 當窗口收到 "delete_event" 信號 (這個信號由窗口管理器發出,通常是“關閉” * 選項或是標題欄上的關閉按鈕發出的),我們讓它調用在前面定義的 destroy_window() 函數。 * 傳給回調函數的 data 參數值是 NULL,它會被回調函數忽略。*/ g_signal_connect (GTK_OBJECT(window), "delete_event",G_CALLBACK (destroy_window), (gpointer)window); /*創建繪圖區,設置尺寸,捕捉鼠標按鍵事件*/ drawingarea = gtk_drawing_area_new(); color.red = 0; color.blue = 65535; color.green = 0; /*設置背景顏色*/ gtk_widget_modify_bg(drawingarea,GTK_STATE_NORMAL,&color); /*設定繪圖區域的大小*/ gtk_widget_set_size_request(GTK_WIDGET(drawingarea),200,200); /*設置成按鈕事件*/ gtk_widget_set_events(drawingarea,GDK_BUTTON_PRESS_MASK); g_signal_connect(GTK_OBJECT(drawingarea),"event",GTK_SIGNAL_FUNC(area_event),(gpointer)drawingarea); gtk_container_add(GTK_CONTAINER(window),drawingarea); /* 最后一步是顯示新創建的按鈕和窗口 */ gtk_widget_show (drawingarea); gtk_widget_show (window); /* 所有的 GTK 程序必須有一個 gtk_main() 函數。程序運行停在這里 * 等待事件 (如鍵盤事件或鼠標事件) 的發生。*/ gtk_main (); return 0; } ~~~ ### 文件選擇 File Selections 文件選擇(file selection)構件是一種快速、簡單的顯示文件對話框的方法。它帶有“Ok”、“Cancel”、“Help”按鈕,可以極大地減少編程時間。看下面的代碼: ![](https://box.kancloud.cn/2016-08-24_57bd779979b4a.jpg) ~~~ /*File:color.c *Date:2014-01-05 *Author:sjin *Mail:413977243@qq.com */ #include <gtk/gtk.h> #include <gdk/gdk.h> #include <glib.h> /*獲得文件名,并將它打印到控制臺上*/ void file_ok_sel(GtkWidget *w,GtkFileSelection *fs) { g_print("%s\n",gtk_file_selection_get_filename(GTK_FILE_SELECTION(fs))); } int main( int argc, char *argv[] ) { /* GtkWidget 是構件的存儲類型 */ GtkWidget *filew; /* 這個函數在所有的 GTK 程序都要調用。參數由命令行中解析出來并且送到該程序中*/ gtk_init (&argc, &argv); /*創建一個新的文件選擇構件*/ filew = gtk_file_selection_new("文件選擇對話框"); g_signal_connect (GTK_OBJECT(filew), "destroy",G_CALLBACK (gtk_main_quit), NULL); /*為ok_button按鈕設置回調函數,鏈接到file_ok_sel 函數*/ g_signal_connect(GTK_OBJECT(GTK_FILE_SELECTION(filew)->ok_button),"clicked",G_CALLBACK(file_ok_sel),filew); /*為cancel_button設置回調函數*/ g_signal_connect(GTK_OBJECT(GTK_FILE_SELECTION(filew)->cancel_button),"clicked",G_CALLBACK(gtk_main_quit),filew); /*設置文件名,不如這個一個文件保存對話框,我們給了一個缺省文件名*/ gtk_file_selection_set_filename(GTK_FILE_SELECTION(filew),"1111.png"); gtk_widget_show (filew); /* 所有的 GTK 程序必須有一個 gtk_main() 函數。程序運行停在這里 * 等待事件 (如鍵盤事件或鼠標事件) 的發生。*/ gtk_main (); return 0; } ~~~
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看