วิธีการเขียนตัวบ่งชี้ในหลาม?


22

ฉันกำลังมองหาที่จะลองและพัฒนาตัวบ่งชี้แบบง่าย ๆ สำหรับ numlock / capslock และ brigthness เป็นต้นฉันจะทำอย่างไรเกี่ยวกับการสร้างตัวบ่งชี้ในหลาม? มีแบบฝึกหัดใดบ้างที่จะแนะนำให้ฉันเขียนตัวบ่งชี้ตัวแรกของฉัน (เช่นสำหรับแอปอย่างรวดเร็ว) มีทางออกง่าย ๆ สำหรับการเริ่มต้นเทมเพลตอย่างรวดเร็วหรือไม่?


โดยเฉพาะอย่างยิ่ง appindicators สำหรับ pyqt5 หรือ pygi และ python3 (ซึ่งจะทำงานนอกเอกภาพเช่นกัน)
Mateo

คำตอบ:


12

คุณสามารถค้นหาหน้าสำหรับเขียนตัวบ่งชี้แอพได้ที่นี่:

ดูสิ่งนี้ด้วย:

ในหน้านั้นคุณจะพบลิงค์ไปยังตัวอย่างใน Python และเอกสาร API เทมเพลต ubuntu-application ใน Quickly ควรมีตัวอย่างการใช้ appindicators โชคดี!


ขอขอบคุณ! ฉันหวังว่าจะได้รับการสอนทีละขั้นตอนเพิ่มเติมสำหรับการลองครั้งแรกของฉัน แต่ฉันจะทำในสิ่งที่เป็น ฉันจะเปิดคำถามต่อไปในกรณีที่มีคนรู้บทเรียนอื่น ๆ
DoGoDo

คุณจะพบกับบทช่วยสอนเพื่อเริ่มต้นใช้งานบนdeveloper.ubuntu.com/get-started - ตรวจสอบส่วนทรัพยากรสำหรับเนื้อหาเพิ่มเติมด้วย! developer.ubuntu.com/resources/app-developer-cookbook/unity
David Planella

ขอบคุณ @DavidPlanella ฉันดูบทช่วยสอนนั้นเพื่อเริ่มต้นกับโปรแกรมปกติ แต่ไม่ได้พูดถึงตัวบ่งชี้ ไม่มีลิงก์อื่น
DoGoDo

คุณไม่เข้าใจเกี่ยวกับตัวอย่างที่นี่ มันเป็นตัวอย่างการทำงานที่เรียบง่ายตรงไปตรงมา (นำมาจากลิงก์คำตอบ) developer.ubuntu.com/resources/technologies/ …
ติโม

2
คำถามที่คล้ายกันหรือเหมือนกันที่นี่ - askubuntu.com/questions/108035/…
fossfreedom

7

ฉันคิดว่าการเขียนตัวบ่งชี้ด้วย Python, GIR และ GTK3ตามที่กล่าวถึงโดย @fossfreedom ครอบคลุมวิธีสร้างตัวบ่งชี้สำหรับ Unity (อ่านที่ 1)

ฉันใช้ Ubuntu 14.04 อย่างรวดเร็ว 12.08.1 นี่คือตัวอย่างสำหรับการสร้างตัวอย่างการทำงานที่สมบูรณ์จากเทมเพลตอย่างรวดเร็ว

  1. OP ต้องการเพียงตัวบ่งชี้ (ไม่ใช่แอป GUI ที่สมบูรณ์) ดังนั้นเริ่มต้นด้วย ubuntu-cli เทมเพลตอย่างรวดเร็ว:

    quickly create ubuntu-cli indicator-demo

    มันอาจทำให้เกิดข้อผิดพลาดสำหรับการแก้ไขข้อผิดพลาดที่ยังไม่ได้เผยแพร่ ( ข้อผิดพลาด # 1064110 ) ในแม่แบบนี้:

    Creating project directory indicator-demo
    Creating bzr repository and committing
    Launching your newly created project!
    Traceback (most recent call last):
    ...
    OSError: [Errno 13] Permission denied
    ERROR: create command failed
    Aborting

    แก้ไขการอนุญาต

    cd indicator-demo/
    chmod +x bin/indicator-demo

    ทดสอบ

    $ quickly run
    I'm launched and my args are:
  2. มีดีคือPYGIเช่นจากอูบุนตูวิกิพีเดีย: ตัวชี้วัดการประยุกต์ใช้ มันควรจะง่ายต่อการรวมเข้าด้วยกัน

    เปิดเพื่อแก้ไข:

    quickly edit
    • ปรับเปลี่ยน __init__.pyเพิ่มความต้องการนำเข้าโมดูล:

      from gi.repository import Gtk
      from gi.repository import AppIndicator3 as appindicator
    • ใน main()ฟังก์ชั่นระหว่าง:

      print _("I'm launched and my args are: %s") % (" ".join(args))
      logging.debug(_('end of prog'))

      เพิ่ม:

      ind = appindicator.Indicator.new_with_path (
                          _("Indicator demo for Quickly"),
                          "indicator-demo-icon-normal",
                          appindicator.IndicatorCategory.APPLICATION_STATUS,
                          indicator_democonfig.get_data_path())
      ind.set_status (appindicator.IndicatorStatus.ACTIVE)
      ind.set_attention_icon ("indicator-demo-icon-attention")
      
      # create a menu
      menu = Gtk.Menu()
      
      # create one item 
      menu_items = Gtk.MenuItem(_("Quit"))
      menu.append(menu_items)    
      # this is where you would connect your menu item up with a function:
      menu_items.connect("activate", Gtk.main_quit )    
      # show the item
      menu_items.show()
      
      ind.set_menu(menu)
      
      Gtk.main()
  3. เพิ่มไอคอนไปยังโฟลเดอร์ข้อมูลที่สร้างขึ้นใหม่:

    mkdir data

    ฉันคัดลอกไอคอนบางส่วนจากแพ็คเกจที่ติดตั้งไว้เพื่อทำตัวอย่าง:

    cp /usr/share/icons/ubuntu-mono-dark/status/22/indicator-messages.svg data/indicator-demo-icon-normal.svg
    cp /usr/share/icons/ubuntu-mono-dark/status/22/indicator-messages-new.svg data/indicator-demo-icon-attention.svg
  4. ทดสอบมัน

    quickly run
  5. สร้างแพ็คเกจและเผยแพร่:

    quickly package
    quickly share --ppa your-ppa

หมายเหตุ:

  1. ฉันไม่ได้อัปเดตไฟล์ควบคุมแพคเกจเดเบียน แต่การพึ่งพาได้ถูกเพิ่มโดยอัตโนมัติไปยัง DEB ที่สร้างขึ้น:

    Package: indicator-demo
    Version: 0.1
    Architecture: all
    Maintainer: UNKNOWN <UNKNOWN>
    Installed-Size: 57
    Depends: python (>= 2.7), python (<< 2.8), python:any (>= 2.7.1-0ubuntu2), gir1.2-gtk-3.0, gir1.2-appindicator3-0.1
    Section: python
    Priority: extra
    Description: UNKNOWN
     UNKNOWN

    นอกจากนี้ไอคอนที่เพิ่มก่อนหน้านี้ในโฟลเดอร์ข้อมูลจะรวมอยู่ในแพ็คเกจ

  2. ฉันต้องเผชิญกับกรณีที่คล้ายกันก่อนหน้านี้จะเพิ่มแอปเพล็ตสถานะตัวดัดแปลงคีย์บอร์ดลงในแผง Unity ได้อย่างไร. คำตอบมีตัวบ่งชี้คีย์บอร์ดตัวอย่าง / ต้นแบบโดยใช้ libappindicator (แต่ในภาษาการเขียนโปรแกรม c)

    libappindicator ขาดคุณสมบัติที่สำคัญซึ่งทำให้ง่ายต่อการพอร์ตตัวบ่งชี้เดสก์ท็อปอื่น ๆ ไอคอนสามารถโหลดได้จากเส้นทางเท่านั้น ดู Bug # 812067 API ที่ต้องการ: สนับสนุนการตั้งค่าไอคอน pixbuf

อ้างอิง:

คำถามที่เกี่ยวข้อง:


3

ลิงค์นี้จะสอนให้คุณสร้างตัวบ่งชี้เมลพื้นฐานใหม่ใน python + unity ซึ่งทำงานกับ GMail สิ่งนี้จะทำให้คุณมีพื้นฐานที่มั่นคงในโครงสร้างพื้นฐานของแอปเพล็ตในขณะที่แสดงตัวอย่างของโลกแห่งความเป็นจริง (แม้ว่าจะง่าย ๆ ) ที่คุณสามารถขยายได้ มันผ่านการเขียนบทสุดท้ายทีละชิ้น
นี่เป็นอีกโปรแกรมไพ ธ อนที่มีความคิดเห็นในรหัส, ทำโดยใช้ Pygtk

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.