| 1 | 1/1 | 返回列表 |
| 查看: 1781 | 回復(fù): 0 | ||
yalefield金蟲(chóng) (文壇精英)
老漢一枚
|
[交流]
【轉(zhuǎn)帖】GTK+ 3.0終于發(fā)布咯
|
|
GTK+3.0的發(fā)布公告在此: http://mail.gnome.org/archives/g ... ruary/msg00020.html 重大更新: 完全Cairo繪制 既然是圖形庫(kù),如何繪制圖形當(dāng)然是最重要點(diǎn)。請(qǐng)注意,GTK+3.0在這點(diǎn)上,并不是革新的,因?yàn)镚TK+2.x即已經(jīng)在絕大多數(shù)地方使用Cairo繪制了。 Cairo是什么?它是一個(gè)矢量的繪圖庫(kù),F(xiàn)irefox使用Cairo進(jìn)行網(wǎng)頁(yè)的繪制和文字排版。 GTK+2.0的時(shí)候,還不依賴(lài)于Cairo,在Linux下,是標(biāo)準(zhǔn)的基于xlib建構(gòu)的圖形庫(kù)。直到GTK+2.8,Cairo才開(kāi)始作為 GTK的重要繪圖引擎,從來(lái)帶來(lái)矢量、抗鋸齒等特性。但是GTK+依然還有不少圖形繪制方面的API及概念是基于X11的,這使得它的跨平臺(tái)性真的不怎么 樣。 舉一個(gè)簡(jiǎn)單的例子: GTK+帶有Colormap的概念(來(lái)源X11),因?yàn)長(zhǎng)inux圖形環(huán)境的限制,默認(rèn)只能使用RGB的colormap,導(dǎo)致要實(shí)現(xiàn)透明的效果(即RGBA)很麻煩,并且兼容性、跨平臺(tái)性不佳。 但在3.0中,所有跟圖形繪制相關(guān)的東西,已經(jīng)全面轉(zhuǎn)移向Cairo了?缙脚_(tái)相關(guān)的代碼,基本上都在事件、屏幕、拖曳等處理上了,F(xiàn)在,即使開(kāi)發(fā)者擁有自繪的界面或控件,也能保證在各種平臺(tái)下有一致的效果了! 更棒的是,由于繪圖API的清理和統(tǒng)一,使得GTK+3.0能非常容易地支持除X11、Win32和Mac以外的后端,這就是下節(jié)要講的: 更靈活、更強(qiáng)大的平臺(tái)擴(kuò)展支持 前面說(shuō)到了,GTK+3.0的完全Cairo支持讓它的跨平臺(tái)性更好了。除此之外,還有“平臺(tái)擴(kuò)展”能力的大福提升。什么是“平臺(tái)擴(kuò)展”能力? GTK+的Wayland后端也在積極開(kāi)發(fā)當(dāng)中,基本上能在Wayland正式發(fā)布時(shí),也有一個(gè)標(biāo)準(zhǔn)的GTK+可以使用。因此,當(dāng)前,GTK+一共有:X11、Win32、Mac(Quartz)、HTML 5和Wayland這五個(gè)后端。用GTK+寫(xiě)軟件,可以跑在這五個(gè)平臺(tái)上! 另外,GTK+3.0還支持多后端功能,即在一個(gè)庫(kù)里面內(nèi)置不同的后端,在運(yùn)行時(shí)而非編譯時(shí)選擇具體的后端。這對(duì)Linux圖形從X11向Wayland發(fā)展有著非常重要的意義。 還是舉一個(gè)例子: 熟悉Qt開(kāi)發(fā)朋友應(yīng)該知道,Qt有一個(gè)專(zhuān)門(mén)面向嵌入式的版本,叫Qte。但是一個(gè)Qt軟件,必須在編譯時(shí)確定它的鏈接庫(kù)是Qt還是Qte,如果它要跑在Qte下,必須重新編使其鏈接至Qte。 但是GTK+3.0就不需要!多后端功能使GTK+可以動(dòng)態(tài)的裝載其后端。比如用戶(hù)的電腦上同時(shí)有Wayland和X11環(huán)境,那么在有 Wayland的情況下,GTK應(yīng)用程序可以以Wayland的形態(tài)呈現(xiàn)出來(lái),在沒(méi)Wayland有X11的情況下,它便可以以X11應(yīng)用程序呈現(xiàn)出來(lái)。 這樣同時(shí)照顧到了使用經(jīng)典X11的用戶(hù)和使用Wayland新桌面的用戶(hù),協(xié)助Linux桌面的逐步進(jìn)化…… 支持CSS的主題API GTK+雖然擁有無(wú)數(shù)的第三方主題,但鮮有讓人眼前一亮的。倒不是說(shuō)缺少漂亮的設(shè)計(jì),而是它的主題API不好,語(yǔ)法難懂、文檔缺失,即使有好的設(shè)計(jì),也不一定能實(shí)現(xiàn)出來(lái)。現(xiàn)在終于可以跟過(guò)去說(shuō)再見(jiàn)了。 GTK+正式支持了CSS式的主題文件,還支持簡(jiǎn)單的動(dòng)畫(huà)屬性——好歹是CSS 3.0了吧。之前的束縛已經(jīng)沒(méi)有了,稍微有點(diǎn)設(shè)計(jì)/前端經(jīng)驗(yàn)的人,都可以簡(jiǎn)單地制作出GTK+的主題了。接下來(lái)就讓我們期待有一個(gè)漂亮、精致的主題出現(xiàn)吧! 多點(diǎn)設(shè)備的支持 2011年了,到處都是支持多點(diǎn)的觸摸屏了。GTK+也不能在這方面落后啊。通過(guò)對(duì)Xinput 2.0的支持,GTK+也支持多點(diǎn)了。這個(gè)多點(diǎn)可以是多個(gè)鼠標(biāo)、多個(gè)鍵盤(pán)或者其他,總之是:多個(gè)輸入設(shè)備。 前段日子不是聽(tīng)到出Ubuntu平板電腦的新聞了嗎?有GTK+3.0的話(huà),應(yīng)該會(huì)更給力的! 更多Widgets、更棒的App API 前面說(shuō)的都是基礎(chǔ)設(shè)施的改進(jìn),那么在應(yīng)用層,GTK+有什么變動(dòng)? 首先是加入了更多的常用的Widget,如Switch(開(kāi)關(guān))、Grid(網(wǎng)格布局)等,另外還引入了GtkApplication這個(gè)類(lèi),想要實(shí)現(xiàn)一個(gè)應(yīng)用程序+多窗口,或者單實(shí)例等等,就變得非常方便了。 GTK周邊:Glib和GObject Introspection GTK+不是一個(gè)獨(dú)立的個(gè)體,它豐富的周邊讓它增色不少。比如它所依賴(lài)的GLib庫(kù),GLib是一個(gè)功能非常豐富的C庫(kù),在最新版本中,它引入了全 新的GSettings用于取代速度很慢的GConf。GSettings在不同的平臺(tái)有不同的實(shí)現(xiàn),提供統(tǒng)一的API供開(kāi)發(fā)者使用,不像GConf,跨 平臺(tái)不好。 在Win32下,GSettings寫(xiě)注冊(cè)表,在Linux下,GSettings的實(shí)現(xiàn)是dconf,一個(gè)存取非常之快的配置中心。以前 GNOME桌面有兩個(gè)比較明顯的缺點(diǎn),一個(gè)是加載慢(GConf的初始化和讀取設(shè)取影響很大),其二是應(yīng)用程序跨平臺(tái)不容易,盡管也是GTK+編寫(xiě),但依 賴(lài)于GConf的原因,讓移植變得困難。現(xiàn)在GSettings一并解決了這些問(wèn)題。 其次,還有GObject Introspection,它讓GTK+的語(yǔ)言擴(kuò)展能力盡乎無(wú)限。以前,除了GTK+、GTKMM(C++)以外,還有一些動(dòng)態(tài)語(yǔ)言的綁定,如Pygtk、perl-gtk。但這些實(shí)現(xiàn)是各種獨(dú)立的,維護(hù)成本非常高。 但是GObject Introspection實(shí)現(xiàn)了GObject對(duì)象的統(tǒng)一調(diào)用,這意味著各種語(yǔ)言只要實(shí)現(xiàn)一個(gè)GObject Introspection的包裝,什么 GTK+的API,都可以通過(guò)它來(lái)調(diào)用了。就像在Python里用ctype一樣,但是通過(guò)GI技術(shù),能像使用原生API一樣來(lái)使用這些C庫(kù)。 目前為止,對(duì)GI支持比較好的已經(jīng)有Python、JavaScript了。GNOME 3.0的重要組件——GNOME Shell即是使用了JavaScript來(lái)實(shí)現(xiàn)其UI邏輯部分。 總結(jié) 雖然讓人等了很久,但是GTK+顯然很好地完成了一次平臺(tái)清理和新特性的加入,可貴的是它依然保持了細(xì)小的個(gè)頭,將能在移動(dòng)或嵌入式領(lǐng)域發(fā)揮重要作用。 此外,自身架構(gòu)的改變讓它可以繼續(xù)不斷地進(jìn)化,讓Linux桌面變得更好! 接下來(lái),就看GTK+3.0在GNOME 3.0和實(shí)踐生產(chǎn)中發(fā)揮作用吧! http://www.linuxeden.com/html/news/20110213/106819.html |
| 1 | 1/1 | 返回列表 |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
|
百度網(wǎng)盤(pán) |
360云盤(pán) |
千易網(wǎng)盤(pán) |
華為網(wǎng)盤(pán)
在新窗口頁(yè)面中打開(kāi)自己喜歡的網(wǎng)盤(pán)網(wǎng)站,將文件上傳后,然后將下載鏈接復(fù)制到帖子內(nèi)容中就可以了。 |
| 最具人氣熱帖推薦 [查看全部] | 作者 | 回/看 | 最后發(fā)表 | |
|---|---|---|---|---|
|
[考研] 265求調(diào)劑 +8 | 梁梁校校 2026-03-19 | 8/400 |
|
|---|---|---|---|---|
|
[考研] 279分求調(diào)劑 一志愿211 +7 | chaojifeixia 2026-03-19 | 7/350 |
|
|
[考研] 材料專(zhuān)碩英一數(shù)二306 +6 | z1z2z3879 2026-03-18 | 6/300 |
|
|
[考研] 288求調(diào)劑 +15 | 于海海海海 2026-03-19 | 15/750 |
|
|
[考研] 321求調(diào)劑 +8 | 何潤(rùn)采123 2026-03-18 | 10/500 |
|
|
[考研] 一志愿天大材料與化工(085600)總分338 +5 | 蔡大美女 2026-03-13 | 5/250 |
|
|
[考研] 304求調(diào)劑 +6 | 司空. 2026-03-18 | 6/300 |
|
|
[考研] 【同濟(jì)軟件】軟件(085405)考研求調(diào)劑 +3 | 2026eternal 2026-03-18 | 3/150 |
|
|
[考研] 化學(xué)工程321分求調(diào)劑 +15 | 大米飯! 2026-03-15 | 18/900 |
|
|
[考研] 070300化學(xué)319求調(diào)劑 +6 | 錦鯉0909 2026-03-17 | 6/300 |
|
|
[考研] 278求調(diào)劑 +5 | 煙火先于春 2026-03-17 | 5/250 |
|
|
[考研] 290求調(diào)劑 +3 | p asserby. 2026-03-15 | 4/200 |
|
|
[考研] 302求調(diào)劑 +4 | 小賈同學(xué)123 2026-03-15 | 8/400 |
|
|
[考研] 283求調(diào)劑 +3 | 聽(tīng)風(fēng)就是雨; 2026-03-16 | 3/150 |
|
|
[考研] [導(dǎo)師推薦]西南科技大學(xué)國(guó)防/材料導(dǎo)師推薦 +3 | 尖角小荷 2026-03-16 | 6/300 |
|
|
[考研] 327求調(diào)劑 +6 | 拾光任染 2026-03-15 | 11/550 |
|
|
[考研] 22408總分284求調(diào)劑 +3 | InAspic 2026-03-13 | 3/150 |
|
|
[考研] 297一志愿上交085600求調(diào)劑 +5 | 指尖八千里 2026-03-14 | 5/250 |
|
|
[考研] 330求調(diào)劑 +3 | ?醬給調(diào)劑跪了 2026-03-13 | 3/150 |
|
|
[碩博家園] 085600 260分求調(diào)劑 +3 | 天空還下雨么 2026-03-13 | 5/250 |
|