Vala + GTK + 3和Granite(在dconf中保存值)

用Vala和GTK +進行編程,我們都曾經想過如何使用Vala和GTK +編寫的應用程序能夠保存窗口大小參數等的狀態? 它們是我們使用的這些典型案例 化學療法 保存這些值(以圖形方式管理這些方案)(這個著名的應用程序dconf-editor)。

現在,我向您展示如何使用Granite庫中的Granite.Services.Settings類以簡單的步驟來完成此操作,而不會帶來任何復雜性。

我們需要什麼?

首先,我們需要安裝GTK +,Granite和Vala庫才能編譯我們的代碼。 要在Ubuntu / ElementaryOS中執行此操作,請使用以下命令:

sudo apt-get install libgtk-3-dev libgranite-dev granite-demo valac

而且,我們還將需要任何支持Vala / GTK +語法和XML的文本編輯器,例如Scratch Text Editor(默認為ElementaryOS),GEdit,Sublime Text + Plugins等。

編碼

這是示例文件。 為了更好地理解,我將代碼留在PASTE中,並在其中添加註釋:

主瓣
教程
設置.vala
org.tutorial.gschema.xml

說明

模式文件(如果必須)必須是XML,並且稱為ORG.APLICACION.GSCHEMA.XML。 也就是說,必須同時存在ORG和GSCHEMA.XML,dconf才能將其識別為模式。 此外,這些圖必須複製到路線:

/usr/share/glib-2.0/schemas/

並且需要對其進行編譯以供DCONF接收,為此,我們執行以下命令:

sudo glib-compile-schemas /usr/share/glib-2.0/schemas/

編譯中

要編譯我們的程序,我們必須在終端中啟動以下命令:

valac --pkg gtk+-3.0 --pkg granite main.vala tutorial.vala settings.vala

並使用以下命令運行二進製文件:

./main

結論

這是使用GLIB將應用程序狀態保存在GSCHEMA中的最佳方法之一。 我會很樂意回答任何問題。

這是我的Ubuntu和示例的屏幕截圖:

快照教程


發表您的評論

您的電子郵件地址將不會被發表。 必填字段標有 *

*

*

  1. 負責數據:MiguelÁngelGatón
  2. 數據用途:控制垃圾郵件,註釋管理。
  3. 合法性:您的同意
  4. 數據通訊:除非有法律義務,否則不會將數據傳達給第三方。
  5. 數據存儲:Occentus Networks(EU)託管的數據庫
  6. 權利:您可以隨時限制,恢復和刪除您的信息。

  1.   勞爾 他說:

    好文章,一些C ++的GTK教程也不錯。 事情發生了很大變化,GTK官方網站推薦了2002年以來的書籍,但我買錯了。

    DevHelp比任何書籍都提供更多幫助。

    1.    勞爾 他說:

      對不起,我的意思是C,而不是C ++。 打開代碼塊時,我總是選擇“ C ++中的項目”,但我使用C編程。

  2.   威脅 他說:

    好的導師,我想知道,但事實並非如此,但實際上我已經給自己足夠的打擊以執行這種方法,我需要使用關於我在團隊中工作的地方的機構形象來自定義背景和登錄屏幕用戶,他們有一個基於Debian 7 Wheezy的委內瑞拉發行版,名為Canaima,用戶通過LDAP進行身份驗證,並且多個用戶可以在同一台PC上工作,因此,在某些情況下,他們必須進行多個會話擁有牆紙後,腳本便可以自定義團隊,以方便技術人員的工作,然後由puppetmaster服務器注入策略。

    我嘗試使用gsettings,但它僅適用於登錄的用戶,顯然它會將信息保存到我尚未實現的每個用戶的本地數據庫中,我正在尋找適用於整個系統而不是單個用戶的某些配置。

    值得一提的是,由於國家日期和任何其他原因,圖像在不斷變化,因此它不僅是圖像,而且是由puppetmaster上載到每個客戶的。

    我不知道這樣的事情是否可以適用於我的案子。
    問候。