Vala + GTK + 3 และ Granite (บันทึกค่าใน dconf)

การเขียนโปรแกรมใน Vala และ GTK + เราทุกคนเคยสงสัยว่าจะทำอย่างไรให้แอปพลิเคชันที่เขียนด้วย Vala และ GTK + สามารถบันทึกสถานะของพารามิเตอร์ขนาดหน้าต่างและอื่น ๆ ได้หรือไม่? เป็นกรณีทั่วไปที่เราใช้ gschema เพื่อบันทึกค่าเหล่านี้ (แอปพลิเคชัน dconf-editor ที่รู้จักกันดีนี้) ที่จัดการโครงร่างเหล่านี้แบบกราฟิก

ตอนนี้ฉันจะแสดงวิธีการทำในขั้นตอนง่ายๆและไม่มีความยุ่งยากโดยใช้คลาส Granite.Services.Settings จากไลบรารี Granite

เราต้องการอะไร?

ก่อนอื่นเราต้องติดตั้งไลบรารี 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 พร้อมกับความคิดเห็น:

main.vala
กวดวิชา.vala
การตั้งค่า.vala
org.tutorial.gschema.xml

คำอธิบาย

ไฟล์ Schema ถ้าหรือถ้าต้องเป็น 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

สรุปผลการวิจัย

เป็นวิธีที่ดีที่สุดวิธีหนึ่งในการบันทึกสถานะแอปของเราใน GSCHEMA โดยใช้ GLIB คำถามใด ๆ ฉันยินดีที่จะตอบ

นี่คือภาพหน้าจอของ Ubuntu ของฉันและตัวอย่าง:

สแนปกวดวิชา


แสดงความคิดเห็นของคุณ

อีเมล์ของคุณจะไม่ถูกเผยแพร่ ช่องที่ต้องการถูกทำเครื่องหมายด้วย *

*

*

  1. ผู้รับผิดชอบข้อมูล: Miguel ÁngelGatón
  2. วัตถุประสงค์ของข้อมูล: ควบคุมสแปมการจัดการความคิดเห็น
  3. ถูกต้องตามกฎหมาย: ความยินยอมของคุณ
  4. การสื่อสารข้อมูล: ข้อมูลจะไม่ถูกสื่อสารไปยังบุคคลที่สามยกเว้นตามข้อผูกพันทางกฎหมาย
  5. การจัดเก็บข้อมูล: ฐานข้อมูลที่โฮสต์โดย Occentus Networks (EU)
  6. สิทธิ์: คุณสามารถ จำกัด กู้คืนและลบข้อมูลของคุณได้ตลอดเวลา

  1.   ราอูลพี dijo

    บทความที่ดีบทช่วยสอน GTK บางส่วนใน C ++ ก็ไม่เลว สิ่งต่างๆมีการเปลี่ยนแปลงไปมากเว็บไซต์ GTK อย่างเป็นทางการแนะนำหนังสือจากปี 2002 ฉันตัดสินใจซื้อผิดพลาด

    DevHelp ช่วยได้มากกว่าหนังสือเล่มใด ๆ

    1.    ราอูลพี dijo

      ขออภัยฉันหมายถึง C ไม่ใช่ C ++ เมื่อฉันเปิด codeblocks ฉันมักจะเลือก "A project ใน C ++" แต่ฉันเขียนโปรแกรมในภาษา C

  2.   คุกคาม dijo

    ครูสอนพิเศษที่ดีฉันอยากจะรู้และฉันรู้ว่ามันไม่ใช่อย่างนั้น แต่ในความจริงฉันได้ให้ความสำคัญกับตัวเองมากพอที่จะสามารถดำเนินการตามแนวทางนี้ได้ฉันจำเป็นต้องปรับแต่งพื้นหลังและหน้าจอการเข้าสู่ระบบด้วยสถาบัน ภาพของสถานที่ที่ฉันทำงานในทีมผู้ใช้พวกเขามีโรงกลั่นของเวเนซุเอลาที่เรียกว่า Canaima ตาม Debian 7 Wheezy ผู้ใช้ตรวจสอบสิทธิ์ผ่าน LDAP และผู้ใช้หลายคนสามารถทำงานบนพีซีเครื่องเดียวกันได้ดังนั้นจึงอาจมีหลายเซสชัน ซึ่งพวกเขาต้องเป็นเจ้าของวอลเปเปอร์ทีมจะได้รับการปรับแต่งตามสคริปต์เพื่ออำนวยความสะดวกในการทำงานของช่างเทคนิคจากนั้นนโยบายจะถูกฉีดโดยเซิร์ฟเวอร์หุ่นเชิด

    ฉันได้ลองใช้ gsettings แล้ว แต่ใช้ได้กับผู้ใช้ที่เข้าสู่ระบบเท่านั้นเห็นได้ชัดว่ามันบันทึกข้อมูลในฐานข้อมูลในเครื่องต่อผู้ใช้ที่ฉันยังไม่ประสบความสำเร็จฉันกำลังมองหาการกำหนดค่าบางอย่างที่ใช้กับระบบทั้งหมดไม่ใช่กับ ผู้ใช้คนเดียว

    เป็นที่น่าสังเกตว่าภาพมีการเปลี่ยนแปลงตลอดเวลาเนื่องจากวันชาติและเหตุผลอื่นใดดังนั้นจึงไม่ได้เป็นเพียงแค่ภาพเท่านั้นที่หุ่นเชิดอัปโหลดไปยังลูกค้าแต่ละราย

    ฉันไม่รู้ว่าสิ่งนี้สามารถนำมาใช้กับกรณีของฉันได้หรือไม่
    อาศิรพจน์