เหตุผลที่ฉันไม่พอใจกับรหัสตัวอย่างและแบบฝึกหัดคือพวกเขาแนะนำการนำเข้าแบบสุ่มจำนวนมากและไม่เคยอธิบายสิ่งที่พวกเขาใช้หรือจะใช้อย่างไร ฉันสร้างคำตอบของตัวเองที่คนอื่นสามารถเพิ่มได้เพื่อที่ผู้คนจะได้รู้ว่าพวกเขาสามารถเรียกฟังก์ชั่นอะไรได้บ้างพวกเขาสามารถนำเข้าอะไรได้ ฯลฯ
มีการสร้างเอกสารสำหรับGnome Shellแต่มันค่อนข้างไม่สมบูรณ์ - ฉันไม่พบสิ่งที่ฉันเห็นในแบบฝึกหัดตัวอย่างและส่วนขยายที่เผยแพร่มากมาย
เอกสารที่น่าเชื่อถือเพียงอย่างเดียวคือแหล่งที่มาของ Gnome Shell ไม่มีวิธีอื่นใดที่ทันสมัยหรือสมบูรณ์ในการรู้ว่ามีอะไรให้บ้าง
จุดเริ่มต้นสองจุดเหล่านี้ดีมาก:
แหล่งที่มาของ C แสดงว่ามีวัตถุสำคัญที่เรียกว่า global
ว่าไม่จำเป็นต้องนำเข้าและให้การเข้าถึงสิ่งต่าง ๆ เช่นตัวจัดการหน้าต่าง (รวมถึงการโยงคีย์) ข้อมูลเซสชันหน้าจอที่มีอยู่และสิ่งอื่น ๆ นี่คือแหล่งที่มา:
ฉันต้องการทราบวิธีใช้global.display
วัตถุและตอนนี้เอกสารที่ดีที่สุดคือสิ่งที่ Alan Knowles ให้มามา
สิ่งอื่น ๆ สามารถนำเข้าผ่านการเชื่อมโยงวิปัสสนา GObject ตัวอย่างเช่น:
โดยทั่วไปคุณสามารถดูเอกสารอ้างอิงสำหรับองค์ประกอบ Gnome ต่างๆเพื่อค้นหาการนำเข้าอื่น ๆ
หมายเหตุเกี่ยวกับกระจกมอง:มีข้อผิดพลาดบางอย่างเกี่ยวกับการใช้การนำเข้าเหล่านี้ในกระจกมองแม้ว่า - ฉันเสียเวลามากแค่พยายามทดสอบสิ่งต่าง ๆ ทันที ตัวอย่างเช่น:
const Clutter = imports.gi.Clutter;
... ไม่ทำงานเพราะClutter
มีอยู่แล้ว แต่แล้ว:
const MyClutter = imports.gi.Clutter;
... ยังไม่ทำงาน MyClutter
ไม่ได้กำหนดและไม่สามารถใช้งานได้ คุณต้องทำ:
MyClutter = imports.gi.Clutter;
แน่นอนในกรณีนี้ Clutter
มีอยู่แล้วดังนั้นจึงไม่จำเป็นจริงๆ แต่เนื่องจากยังไม่ได้บันทึกสิ่งที่เป็นและยังไม่ได้อยู่ในเนมสเปซของกระจกมองหากคุณพยายามนำเข้าบางสิ่งและมีปัญหาเหล่านี้โปรดจำไว้
คำถามที่เหลืออยู่:
- คือ
Mainloop
อะไร สิ่งนี้นำเข้ามาmain.js
และดูเหมือนว่าจะมีฟังก์ชั่นที่เกี่ยวข้องกับการวนลูปหลักของ GLib มีเอกสารประกอบสำหรับสิ่งนี้หรือไม่?
- คือ
imports.misc
อะไร ดูเหมือนว่ามีบางสิ่งที่มีประโยชน์จริง ๆ ในนั้นเช่นExtensionUtils
- อะไรน่ะ?
- คุณใช้ DBus อย่างไร แล้ววิปัสสนาล่ะ