国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

在Python中封裝GObject模塊進行圖形化程序編程的教程

2020-02-23 00:43:18
字體:
來源:轉載
供稿:網友

Python 是用于編碼圖形界面的極佳語言。由于可以迅速地編寫工作代碼并且不需要費時的編譯周期, 所以可以立即使界面啟動和運行起來,并且不久便可使用這些界面。 將這一點與 Python 易于鏈接本機庫的能力結合起來,就可以形成一個出色的環境。

gnome-python 是為 Python 封裝 GNOME 及其相關庫的軟件包。 這使您能夠用 Python 編寫外觀與核心 GNOME 應用程序完全相同的應用程序,而所花的時間只是用 C 編寫該應用程序所花的一部分。

然而,不用 C 進行編程會有一個缺點。大多數 GNOME 都是用 C 編寫的,對于要在 Python 中使用的窗口小部件,必須將它們封裝。 對于知道封裝過程如何工作的人來說,這是一個快速任務,但它不是自動的, 除非窗口小部件屬于核心 GNOME 庫或者至少非常有用,否則將不會對它們進行封裝。C 程序員可能必須編寫更復雜的代碼,但它們確實先做了這一步!

但并不一定是那樣!雖然從傳統上講封裝窗口小部件過程這一技術只有極少數人才知道,但它并不真的那么難。 如果您在發現新的窗口小部件時可以將它們封裝,那么您就可以立刻在 Python 程序中使用它們。

本文將描述如何封裝用 C 編碼的 GObject(所有 GTK+ 窗口小部件和許多相關對象的最終基類), 以便可以從 Python 代碼使用它。假設您的機器上安裝了 gnome-python V1.99.x(如果沒有安裝, 請參閱 參考資料以獲取鏈接)。如果您正在使用軟件包,請確保安裝了該開發軟件包。 另外,還必須安裝 Python 2.2 及其頭文件。 假設您了解 Make、Python、GTK+ 2 和一些 C 方面的知識。

為了演示該過程,我將封裝 EggTrayIcon ,它是用于在通知區中抽象表示圖標的 GTK+ 窗口小部件。 該庫在 GNOME CVS 中,位于 libegg 模塊。在本文的結尾,我們將有一個名為 trayicon 的本機 Python 模塊,它包含一個 TrayIcon 對象。

開始時,獲得 eggtrayicon.c 和 eggtrayicon.h(其鏈接在本文結尾的 參考資料一節中),然后將它們放入新目錄中。 應該在 automake 環境中構建該源文件(但我們將不在這種環境中), 所以或者除去這些文件中的 #include <config.h> ,或者創建一個名為 config.h 的空文件,然后創建一個空的 makefile;接下來,我們將填充它。
創建界面定義

該對象封裝過程的第一步是創建 trayicon.defs,該文件為該對象指定 API。 定義文件是用一種類 Scheme 的語言編寫的,雖然對于小型界面來說它們很容易生成, 但對于大型界面或初學者來說編寫它們會很吃力。

gnome-python 與名為 h2def 的工具一起提供。該工具將解析頭文件并生成粗略的定義文件。 注:因為它實際上并沒有解析 C 代碼,而只是使用正則表達式, 所以它的確要求傳統格式化的 GObject,并且不能正確解析奇特格式化的 C 代碼。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 武定县| 宜兰市| 东平县| 兴和县| 公主岭市| 凤阳县| 旬阳县| 宁远县| 涪陵区| 富宁县| 城固县| 定南县| 融水| 白银市| 靖江市| 民乐县| 乳山市| 阿拉善盟| 河北区| 黄龙县| 嵊州市| 南投县| 南开区| 措美县| 伊春市| 渑池县| 大渡口区| 平阳县| 苗栗市| 博兴县| 镇宁| 临城县| 九龙县| 太仓市| 塔城市| 甘洛县| 长春市| 周宁县| 文昌市| 那坡县| 齐河县|