Vala + GTK + 3 및 Granite (dconf에 값 저장)

Vala 및 GTK +로 프로그래밍 할 때 Vala 및 GTK +로 작성된 응용 프로그램을 어떻게 창 크기 매개 변수의 상태와 기타 상태를 저장할 수 있는지 궁금해 한 적이 있습니까? 그들은 우리가 사용하는 전형적인 사례입니다 gschema 이러한 스키마를 그래픽으로 관리하는 이러한 값 (이 잘 알려진 응용 프로그램 dconf-editor)을 저장합니다.

이제 Granite 라이브러리의 Granite.Services.Settings 클래스를 사용하여 복잡한 작업없이 간단한 단계로이 작업을 수행하는 방법을 보여줍니다.

우리는 무엇이 필요한가?

먼저 코드를 컴파일하려면 GTK +, Granite 및 Vala 라이브러리를 설치해야합니다. Ubuntu / ElementaryOS에서이를 수행하려면 다음 명령을 사용합니다.

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

또한 Scratch Text Editor (ElementaryOS 기본값), GEdit, Sublime Text + Plugins 등과 같이 Vala / GTK + 구문 및 XML을 지원하는 모든 텍스트 편집기가 필요합니다.

코드

다음은 예제 파일입니다. 더 나은 이해를 위해 주석과 함께 PASTE에 코드를 남겨 둡니다.

메인.발라
튜토리얼.발라
설정.발라
org.tutorial.gschema.xml

설명

스키마 파일 (XML이어야하거나 ORG.APLICACION.GSCHEMA.XML이라고 함). 즉, dconf가 스키마로 인식하려면 ORG와 GSCHEMA.XML이 모두 있어야합니다. 또한 다음 다이어그램을 경로에 복사해야합니다.

/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에서 APP의 상태를 저장하는 가장 좋은 방법 중 하나입니다. 모든 종류의 질문에 기꺼이 답변 해 드리겠습니다.

다음은 내 Ubuntu와 예제의 스크린 샷입니다.

스냅 튜토리얼


코멘트를 남겨주세요

귀하의 이메일 주소는 공개되지 않습니다. 필수 필드가 표시되어 있습니다 *

*

*

  1. 데이터 책임자 : Miguel Ángel Gatón
  2. 데이터의 목적 : 스팸 제어, 댓글 관리.
  3. 합법성 : 귀하의 동의
  4. 데이터 전달 : 법적 의무에 의한 경우를 제외하고 데이터는 제 XNUMX 자에게 전달되지 않습니다.
  5. 데이터 저장소 : Occentus Networks (EU)에서 호스팅하는 데이터베이스
  6. 권리 : 귀하는 언제든지 귀하의 정보를 제한, 복구 및 삭제할 수 있습니다.

  1.   라울 P

    좋은 기사, C ++의 몇 가지 GTK 튜토리얼은 나쁘지 않습니다. 상황이 많이 바뀌었고, 공식 GTK 사이트는 2002 년부터 책을 추천했는데, 나는 그것을 구입하는 실수를 저질렀습니다.

    DevHelp는 어떤 책보다 더 많은 도움을줍니다.

    1.    라울 P

      C ++가 아니라 C를 의미했습니다. 코드 블록을 열 때 항상 "A project in C ++"를 선택하지만 C로 프로그래밍합니다.

  2.   협박

    좋은 튜터 님, 알고 싶습니다. 사실이 아님을 알고 있습니다.하지만 사실 저는이 접근 방식을 수행 할 수있을만큼 충분히 고개를 쳤습니다. 제가 팀에서 일하는 기관 이미지로 배경과 로그인 화면을 사용자 정의해야합니다. 사용자는 데비안 7 Wheezy를 기반으로 한 Canaima라는 베네수엘라 배포판이 있고 사용자는 LDAP를 통해 인증하고 여러 사용자가 동일한 PC에서 작업 할 수 있으므로 여러 세션이 필요한 경우가있을 수 있습니다. 바탕 화면을 소유하고있는 팀은 기술자의 작업을 용이하게하기 위해 스크립트에 의해 사용자 정의 된 다음 puppetmaster 서버에서 정책을 삽입합니다.

    나는 gsettings로 시도했지만 로그인하는 사용자에게만 작동하며, 분명히 내가 아직 달성하지 않은 사용자별로 로컬 데이터베이스에 정보를 저장합니다. 단일 사용자가 아닌 전체 시스템에 적용되는 일부 구성을 찾고 있습니다.

    국가 날짜 및 기타 이유로 인해 이미지가 지속적으로 변경된다는 점을 언급 할 가치가 있습니다. 따라서 이미지는 단순한 이미지가 아니라 꼭두각시가 각 고객에게 업로드합니다.

    이런 일이 제 사건에 적용될 수 있을지 모르겠습니다.
    인사말.