gtk+ 實現(xiàn)電話程序界面(1)
本項目實現(xiàn)的最終目標是:實現(xiàn)一個視頻電話程序界面,能夠?qū)崿F(xiàn)撥號、建立通訊錄以及記錄通話記錄等功能。流程圖如下:

以下代碼實現(xiàn)的是程序啟動界面,結(jié)果如下

creat_pixbuf:用于獲取從文件中獲取到GdkPixbuf類型的圖像數(shù)據(jù),便于我們使用,例如修改圖片大小等
set_background:將傳入的圖片設(shè)置為本窗口的背景
總結(jié):
今天主要的收獲
(1)學習到了設(shè)置窗口背景的方法,不能單純地使用圖片顯示控件將圖片顯示在窗口中,不然會導(dǎo)致后續(xù)的控件沒法添加,因為圖片顯示控件不是一個容器。而是應(yīng)該set_background函數(shù)中的那樣,先打開app的繪圖權(quán)限,然后發(fā)出窗口繪制信號,設(shè)置好圖片的參數(shù)后,調(diào)用gdk_window_set_back_pixmap函數(shù)完成設(shè)置。
(2)界面的布局應(yīng)當事先設(shè)計好布局,根據(jù)布局情況選擇合適的布局容器。
(3)使用表格布局容器,添加到其中的控件的尺寸默認由窗口管理器控制,如果要認為進行控制,可以先將按鍵添加到fixed(固定布局容器)中,調(diào)用gtk_widget_set_size_request設(shè)置案件大小,然后再將fixed添加到表格布局容器的對應(yīng)位置。
(4)使用fixed時,需要注意,
其一,fixed的大小不會隨著窗口的變化變化,如果不能接受這一缺點,盡量避免使用fixed。其二,將控件添加到fixed時,后面的坐標是相對于fixed的父組件而言的,例如我們將fixed添加到table中時,坐標位置的起點(fixed的左上角頂點)應(yīng)當是table某個表格的左上角頂點坐標,坐標的值都是以該點作為原點。其三,按鍵的大小也不應(yīng)該大于fixed起點坐標與fixed所在表項尺寸的值的絕對值。