成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

解析GTK Widget學(xué)習(xí)文檔及案例實(shí)現(xiàn)

移動(dòng)開發(fā)
GTK Widget學(xué)習(xí)文檔及案例實(shí)現(xiàn)是本文要介紹的內(nèi)容,主要是來了解并學(xué)習(xí)GTK Widget的應(yīng)用及案例的實(shí)現(xiàn),具體內(nèi)容的實(shí)現(xiàn)來看本文詳解。

GTK Widget學(xué)習(xí)文檔及案例實(shí)現(xiàn)是本文要介紹的內(nèi)容,主要是來了解并學(xué)習(xí)GTK Widget的應(yīng)用及案例的實(shí)現(xiàn),具體內(nèi)容的實(shí)現(xiàn)來看本文詳解。

一、gtk_widget_realize函數(shù)的作用

gtk_widget_realize這個(gè)函數(shù)是用來創(chuàng)建該widget對應(yīng)的GdkWindow和相關(guān)資源的。一般我們用不到這個(gè)函數(shù),一般是在創(chuàng)建自定義的widget的時(shí)候,需要用到。

我們一般不需要使用這個(gè)函數(shù)的原因是:當(dāng)我們調(diào)用gtk_widget_show_all函數(shù)的時(shí)候,就會(huì)自動(dòng)調(diào)用這個(gè)函數(shù)。但是 Foundations of GTK+ Developing一書中提到,對于GtkEventBox,_show_all函數(shù)并不會(huì)調(diào)用realize,所以我們需要手動(dòng)調(diào)用一次這個(gè)函數(shù)。

而 且,調(diào)用這個(gè)函數(shù)之前,需要首先調(diào)用gtk_container_add這樣類似的函數(shù),這是因?yàn)镚TK要確定eventbox要知道他的parent和 ancestor是誰。

這次寫RTSP Player demo程序的時(shí)候,eventbox不是add到Top level的GtkWindow的,而是add到了一個(gè)GtkVBox中,用的是gtk_box_pack_start函數(shù),我發(fā)現(xiàn)在調(diào)用了 gtk_box_pack_start之后,調(diào)用gtk_widget_realize在運(yùn)行時(shí)會(huì)發(fā)生一個(gè)斷言錯(cuò)誤。

去掉這句代碼就好了,而且看起來也沒 有什么問題。這樣看來,是不是使用了gtk_box_pack_start函數(shù)的話,就不需要用gtk_widget_realize了呢?

二、GTK編程中如何準(zhǔn)確獲知當(dāng)前widget的size

1、用gtk_widget_get_request_size/gtk_widget_size_request取出來的都是當(dāng)初request的size,不是widget當(dāng)前的size

2、使用gdk_drawable_get_size函數(shù)可以取出當(dāng)前widget的size。注意,gdk_window_get_size函數(shù)有一樣的效果,不過這個(gè)函數(shù)已經(jīng)deprecated了。

還有一點(diǎn),這個(gè)widget必須有window,像label, progressbar這些widget,他們是沒有GdkWindow的(在Foundations of GTK+書中有描述,所以,像這樣的widget如果要捕捉事件的話,要在他們下面套一個(gè)EventBox),雖然有window這個(gè)成員變量 (window這個(gè)成員變量定義在GtkWidget中,所以他們都有),但是他們的window這個(gè)成員變量,其實(shí)是他們的parent的window 變量(參看GtkWidget class手冊中該成員變量的描述)。

OK,給出一段example代碼,這段代碼是一個(gè)eventbox,上面放了一個(gè)progressbar,取的是eventbox的size,其實(shí)也就是progressbar的size:

  1. // Get the size of eventbox   
  2. gint width, height;   
  3. gdk_drawable_get_size(GDK_DRAWABLE(eventbox->window), &width, &height); 

小結(jié):解析解析GTK Widget學(xué)習(xí)文檔及案例實(shí)現(xiàn)的內(nèi)容介紹完了,希望通過GTK Widget應(yīng)用內(nèi)容的學(xué)習(xí)能對你有所幫助!

責(zé)任編輯:zhaolei 來源: 博客園
相關(guān)推薦

2011-09-08 11:18:53

Widget

2011-09-09 19:39:57

GTK Widget

2011-09-01 10:27:42

jQuery Mobi

2011-09-09 20:02:19

GTK Widget

2011-09-09 16:38:51

Android Wid源碼

2011-09-09 19:23:52

Widget

2011-08-15 17:06:01

Objective-CNSLog

2011-08-31 10:37:06

MTK開發(fā)入門

2011-09-08 15:40:45

Android Wid組件

2011-08-17 15:23:37

iPhone開發(fā)Objective-CCocoa Touch

2011-08-18 10:17:21

Xcode4Xcode

2011-09-07 14:25:53

Android Wid設(shè)計(jì)

2011-08-04 16:46:03

Objective-C 聲明

2011-08-12 10:27:52

Objective-C對象

2011-09-08 16:07:13

Widget配置文件

2011-09-07 14:20:42

Android Wid組件

2011-08-22 15:31:35

Objective-C協(xié)議

2011-09-09 10:19:13

2011-09-08 17:44:47

GTK Widget

2011-09-09 17:59:26

QT Widget
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: 久草免费在线视频 | 在线视频一区二区三区 | 日韩精品一区中文字幕 | 久久99久久 | 日韩在线不卡视频 | 精品国产乱码久久久久久丨区2区 | 亚洲男人天堂av | 天天色综 | 久久69精品久久久久久国产越南 | 久久99深爱久久99精品 | 日日夜夜视频 | 在线观看免费黄色片 | 欧美精品1区2区3区 免费黄篇 | 久久精品免费观看 | 欧美日韩一二三区 | 精品福利在线 | 亚洲精品久久久一区二区三区 | 自拍偷拍亚洲欧美 | 精品美女久久久 | 孕妇一级毛片 | 成人性视频在线 | 免费中文字幕 | 日韩在线欧美 | 亚洲免费在线观看视频 | 午夜视频在线免费观看 | 在线观看中文字幕亚洲 | 天天看夜夜 | 黄色一级大片在线免费看产 | 激情 婷婷 | 国产视频久久 | 精品麻豆剧传媒av国产九九九 | 日韩精品在线视频 | 九九久久免费视频 | 日韩国产精品一区二区三区 | 永久看片| 日本午夜网站 | 国产乱码精品一区二区三区五月婷 | 91国内精品久久 | 91黄在线观看 | 一区精品视频在线观看 | 中文字幕一区在线观看视频 |