tray_manager เป็นแพ็คเกจที่ใช้ในการสร้างไอคอนถาดระบบโดยใช้ Pystray (https://github.com/moses-palmer/pystray โดย Moses Palmér) แพ็คเกจนี้เป็นเวอร์ชัน "ง่ายขึ้น" ของ Pystray ในการจัดการตามการใช้วัตถุ
tray_manager เป็น publisehd บน pypi (https://pypi.org/project/tray-manager/) และสามารถดาวน์โหลดได้โดยใช้คำสั่งต่อไปนี้ในเทอร์มินัลของคุณ:
pip install tray-managerบันทึก
คุณต้องติดตั้ง Python บนคอมพิวเตอร์ของคุณ
วัตถุหลักของ Libairy คือ tray_manager.TrayManager วัตถุมันเป็นองค์ประกอบหลักและถือได้ว่าเป็นไอคอนในถาดระบบเองมันมีองค์ประกอบทั้งหมดของแอปของเรา
ในการสร้างคุณต้องนำเข้าคลาส tray_manager.TrayManager และสร้างวัตถุถาดตาม:
from tray_manager import TrayManager
my_tray = TrayManager ( app_name = "My App" ) ในการหยุดแอพคุณต้องใช้ฟังก์ชัน .kill() ตาม:
บันทึก
ฟังก์ชั่น .kill() ส่งคืนรายการทั้งหมดที่มีอยู่ในเมนูเป็นรายการของรายการ
from tray_manager import TrayManager , Label , Button
my_tray = TrayManager ( "My App" , run_in_seperate_thread = True )
my_menu = my_tray . menu
def my_callback ():
print ( "Hello" )
my_label = Label ( "My Label" )
my_button = Button ( "My Button" , my_callback )
my_menu . add ( my_label )
my_menu . add ( my_button )
my_tray . kill ()
- > [ my_label , my_button ]สำคัญ
วัตถุเมนูและ traymanager ที่คุณฆ่าจะกลายเป็นไร้ประโยชน์
คำเตือน
การสร้างวัตถุ tray_manager.TrayManager จะเรียกใช้มันจะเป็นห่วงภายในทันทีที่มันถูกสร้างขึ้น ซึ่งหมายความว่าการสร้างวัตถุ tray_manager.TrayManager จะบล็อกส่วนที่เหลือของรหัสของคุณ เพื่อป้องกันไม่ให้เกิดขึ้นคุณมี 2 ตัวเลือก:
คุณสามารถระบุฟังก์ชั่นเป็นอาร์กิวเมนต์ setup ของวัตถุ tray_manager.TrayManager ฟังก์ชั่นนี้จะเริ่มต้นในเธรดใหม่เมื่อสร้างวัตถุของคุณ
(Windows เท่านั้น) หากคุณอยู่ใน Windows และคุณไม่ต้องกังวลเกี่ยวกับความเข้ากันได้กับแพลตฟอร์มอื่น ๆ คุณสามารถตั้งค่าอาร์กิวเมนต์ run_in_separate_thread ของ tray_manager.TrayManager วัตถุเป็น True สิ่งนี้จะเริ่มวนลูป tray_manager ในเธรดใหม่และส่วนที่เหลือของรหัสของคุณจะถูกดำเนินการอย่างถูกต้องในวงกลมหลัก
รายการเป็นองค์ประกอบของแอพของคุณพวกเขาจะแสดงในเมนูที่เพิ่มเข้ามา รายการต่าง ๆ ของพวกเขาเป็นสิ่งที่แตกต่างกันซึ่งทั้งหมดทำงานในลักษณะเดียวกัน แต่แต่ละรายการมีความเฉพาะเจาะจงบางอย่าง
นี่คือรายการของรายการทั้งหมด:
ฉลากเป็นรายการพื้นฐานที่สุดมันเป็นเพียงข้อความเท่านั้น
หากต้องการสร้างให้ใช้คลาส tray_manager.Label ตามที่ตามมา:
from tray_manager import Label
my_label = Label ( "My Label" )ปุ่มเป็นเหมือนรายการฉลาก แต่คุณสามารถเพิ่มอาร์กิวเมนต์การโทรกลับ (ฟังก์ชันการแข่งขัน) ที่จะถูกเรียกเมื่อผู้ใช้คลิกที่ปุ่ม นอกจากนี้คุณยังสามารถระบุอาร์กิวเมนต์บางอย่างเป็น tuple ที่จะส่งผ่านไปยังฟังก์ชั่นของคุณเมื่อคลิกปุ่ม
หากต้องการสร้างให้ใช้คลาส tray_manager.Button ตามที่ตามมา:
from tray_manager import Button
def my_callback ( text : str ) -> None :
print ( text )
my_button = Button ( "My Button" , my_callback , args = ( "Hello" ,))รายการช่องทำเครื่องหมายนั้นซับซ้อนกว่าปุ่มปกติเล็กน้อยมีการโทรกลับที่แตกต่างกัน 2 รายการแทนที่จะเป็น 1 และอาร์กิวเมนต์ที่แตกต่างกันสำหรับแต่ละรายการเมื่อช่องทำเครื่องหมายสลับจากสถานะ 'ปิดใช้งาน' เป็น 'สถานะ' เปิดใช้งาน '(ไม่ตรวจสอบการตรวจสอบ)
คุณสามารถ 'ปิดใช้งาน' การโต้ตอบกับช่องทำเครื่องหมายของคุณโดยการตั้งค่าของ check_default เป็น None
บันทึก
การโทรกลับจะไม่ถูกเรียกใช้หากผู้ใช้คลิกที่ช่องทำเครื่องหมายเมื่อปิดใช้งาน
หากต้องการสร้างให้ใช้คลาส tray_manager.CheckBox ตามที่ตามมา:
from tray_manager import CheckBox
def checked ( text : str ) -> None :
print ( f"In procedure 'checked' : { text } " )
def unchecked ( text : str ) -> None :
print ( f"In procedure 'unchecked' : { text } " )
my_checkbox = CheckBox ( "My CheckBox" , check_default = False , checked_callback = checked , checked_callback_args = ( "I'm now checked" ,),
unchecked_callback = unchecked , unchecked_callback_args = ( "I'm now unchecked" ,)) ในการรับสถานะปัจจุบันของช่องทำเครื่องหมายคุณสามารถใช้ฟังก์ชั่น .get_status() ตาม:
from tray_manager import CheckBox
my_checkbox = CheckBox ( "My CheckBox" )
my_checkbox . get_status ()
- > bool | None นอกจากนี้คุณยังสามารถตั้งค่าสถานะของช่องทำเครื่องหมายได้โดยใช้ฟังก์ชัน .set_status() ตามดังนี้:
from tray_manager import CheckBox
my_checkbox = CheckBox ( "My CheckBox" )
my_checkbox . set_status ( True )
- > Checked
my_checkbox . set_status ( False )
- > Unchecked
my_checkbox . set_status ( None )
- > Disabled บันทึก
| ช่องทำเครื่องหมาย | สถานะ |
|---|---|
| ตรวจสอบแล้ว | True |
| ไม่ถูกตรวจสอบ | False |
| พิการ | None |
เมื่อช่องทำเครื่องหมายถูกปิดใช้งานจะอยู่ในสถานะก่อนหน้าและหยุดการโต้ตอบซึ่งหมายความว่าหากช่องทำเครื่องหมายถูกตรวจสอบก่อนที่จะถูกปิดใช้งานช่องทำเครื่องหมายจะยังคงตรวจสอบอยู่ แต่จะไม่มีอะไรเกิดขึ้นหากผู้ใช้คลิก
ตัวคั่นเป็นวัตถุในตัวของ pystray มันไม่มีพารามิเตอร์ใด ๆ
หากต้องการสร้างให้ใช้คลาส tray_manager.Separator ตามที่ตามมา:
from tray_manager import Separator
my_separator = Separator () เมนูย่อยเป็นเหมือนวัตถุ tray_manager.Menu และสามารถมีรายการอื่น ๆ รวมถึงเมนูย่อยอื่น ๆ
คำเตือน
เป็นคนแคร์เมื่อเพิ่มเมนูย่อยลงในกันและกันเพื่อเพิ่มเมนูย่อยลงในเมนูย่อยที่มีอยู่ในเมนูย่อยที่คุณกำลังเพิ่มจะสร้างข้อผิดพลาด tray_manager.CircularAddException
ผังงาน TD
A {My Submenu} -> B (ฉลากของฉัน)
A -> C (ปุ่มของฉัน)
A -> D {เมนูย่อยที่สองของฉัน}
D -> E (ฉลากที่สองของฉัน)
D -> F (ช่องทำเครื่องหมายของฉัน)
D -> | tray_manager.circularaddexception | อัน
หากต้องการสร้างให้ใช้ tray_manager.Submenu ตามที่ตามมา:
from tray_manager import Submenu
my_submenu = Submenu ( "My Submenu" ) ในการเพิ่มรายการลงในเมนูย่อยให้ใช้ฟังก์ชัน .add() ตาม:
from tray_manager import Submenu , Label
my_submenu = Submenu ( "My Submenu" )
my_label = Label ( "My Label" )
my_submenu . add ( my_label ) หากต้องการลบรายการออกจากเมนูย่อยให้ใช้ฟังก์ชัน .remove() ตามดังนี้:
from tray_manager import Submenu , Label
my_submenu = Submenu ( "My Submenu" )
my_label = Label ( "My Label" )
my_submenu . add ( my_label )
my_submenu . remove ( my_label )
- > my_label บันทึก
ฟังก์ชั่น .remove() ส่งคืนรายการที่ถูกลบออก
หากต้องการรับรายการที่มีอยู่ในเมนูเมนูย่อยให้ใช้ฟังก์ชัน .get_items() ตาม:
from tray_manager import Submenu , Label , Button
def my_callback ()
print ( "Hello" )
my_submenu = Submenu ( "My Submenu" )
my_label = Label ( "My Label" )
my_button = Button ( "My Button" , my_callback )
my_submenu . add ( my_label )
my_submenu . add ( my_button )
my_submenu . get_items ()
- > [ my_label , my_button ] tray_manager.Menu เป็นหนึ่งในองค์ประกอบกลางของห้องสมุดนี้มันทำงานเหมือนเมนูย่อยและถูกสร้างขึ้นโดยอัตโนมัติเมื่อคุณสร้าง tray_manager.TrayManager OBJECT เป็นวัตถุ tray_manager.TrayManager.menu
คำเตือน
ตรวจสอบ tray_manager.OsSupport.HAS_MENU เพื่อความไม่ลงรอยกันในระบบปฏิบัติการของคุณหากระบบปฏิบัติการของคุณไม่รองรับเมนู tray_manager.TrayManager.menu วัตถุจะไม่มี
หากต้องการใช้เมนูให้ใช้วัตถุ tray_manager.TrayManager.menu ตาม:
from tray_manager import TrayManager
my_tray = TrayManager ( "My App" , run_in_seperate_thread = True )
my_menu = my_tray . menu หากต้องการเพิ่มรายการลงในเมนูให้ใช้ฟังก์ชัน .add() ตาม:
from tray_manager import TrayManager , Label
my_tray = TrayManager ( "My App" , run_in_seperate_thread = True )
my_menu = my_tray . menu
my_label = Label ( "My Label" )
my_menu . add ( my_label ) ในการลบรายการออกจากเมนูคุณสามารถใช้ฟังก์ชัน .remove() ตามดังนี้:
from tray_manager import TrayManager , Label
my_tray = TrayManager ( "My App" , run_in_seperate_thread = True )
my_menu = my_tray . menu
my_label = Label ( "My Label" )
my_menu . add ( my_label )
my_menu . remove ( my_label )
- > my_label บันทึก
ฟังก์ชั่น .remove() ส่งคืนรายการที่ถูกลบออก
ในการรับรายการที่มีอยู่ในเมนูคุณสามารถใช้ฟังก์ชัน .get_items() ตาม:
from tray_manager import TrayManager , Menu , Label , Button
def my_callback ()
print ( "Hello" )
my_tray = TrayManager ( "My App" , run_in_seperate_thread = True )
my_menu = my_tray . menu
my_label = Label ( "My Label" )
my_button = Button ( "My Button" , my_callback )
my_menu . add ( my_label )
my_menu . add ( my_button )
my_menu . get_items ()
- > [ my_label , my_button ] ในการอัปเดตรายการเมนู (รายการที่มีอยู่ในเมนู) ให้ใช้ฟังก์ชัน .update()
from tray_manager import TrayManager
my_tray = TrayManager ( "My App" , run_in_seperate_thread = True )
my_menu = my_tray . menu
my_menu . update ()บันทึก
ฟังก์ชั่น .update() จะถูกทริกเกอร์โดยอัตโนมัติทุกครั้งที่คุณแก้ไขเพิ่มหรือลบรายการออกจากเมนู
คุณสามารถปรับแต่งวัตถุ TrayManager ของคุณในรูปแบบต่าง ๆ เช่น:
ในการตั้งค่าชื่อใหม่สำหรับแอปของคุณให้ใช้ฟังก์ชัน .set_app_name() ตามดังนี้:
from tray_manager import TrayManager
my_tray = TrayManager ( "My App" , run_in_seperate_thread = True )
my_tray . set_app_name ( "My new App" ) tray_manager ใช้ระบบหน่วยความจำสำหรับไอคอนเพื่อตั้งค่าไอคอนใหม่สำหรับแอปของคุณก่อนอื่นคุณต้องโหลดโดยใช้ฟังก์ชัน .load_icon() จากนั้นตั้งค่าไอคอนเป็นไอคอนใหม่โดยใช้ฟังก์ชัน .set_icon() ของวัตถุ tray_manager.TrayManager
บันทึก
โดยค่าเริ่มต้นไอคอนคือสี่เหลี่ยมสีขาวที่ 32x32 พิกเซล ไอคอนเริ่มต้นจะถูกโหลดในหน่วยความจำเสมอและสามารถตั้งค่าได้อีกครั้งโดยผ่าน tray_manager.Values.DEFAULT เป็นอาร์กิวเมนต์ name ของฟังก์ชัน .set_icon()
ในการโหลดไอคอนให้ใช้ฟังก์ชัน .load_icon() และส่งผ่าน เส้นทางไฟล์ภาพที่เข้ารหัสวัตถุ PIL.Image หรือไฟล์ใด ๆ ที่สามารถอ่านและตีความได้ว่าเป็นภาพโดย PIL คุณต้องส่งชื่อที่จะใช้เป็นกุญแจสำคัญในไอคอน Dictionnary เพื่อ retreive ไอคอนของคุณ
from tray_manager import TrayManager
my_tray = TrayManager ( "My App" , run_in_seperate_thread = True )
my_tray . load_icon ( "my_icon_file_path.png" , "my_new_icon" )คำเตือน
tray_manager ใช้ DictionNary เพื่อบันทึกไอคอนที่โหลดของคุณซึ่งหมายความว่าการโหลดภาพโดยใช้ชื่อที่ใช้ไปแล้วจะเขียนทับภาพที่โหลดก่อนหน้านี้ด้วยชื่อนั้น ข้อยกเว้นเพียงอย่างเดียวคือไอคอนเริ่มต้นที่ไม่สามารถแก้ไขได้
ในการตั้งค่าไอคอนให้ใช้ฟังก์ชั่น .set_icon() และส่งผ่านชื่อ (คีย์) ของไอคอนที่คุณตั้งค่าเมื่อคุณโหลดไอคอน
from tray_manager import TrayManager
my_tray = TrayManager ( "My App" , run_in_seperate_thread = True )
my_tray . load_icon ( "my_icon_file_path.png" , "my_new_icon" )
my_tray . set_icon ( "my_new_icon" ) แทนที่จะฆ่า tray_manager.TrayManager วัตถุเมื่อคุณต้องการให้มันหยุดแสดงในถาดระบบและสร้างใหม่เมื่อคุณต้องการอีกครั้งคุณสามารถใช้ .show() และ .hide() ฟังก์ชั่นของ tray_manager.TrayManager
บันทึก
คุณสามารถตั้งค่าอาร์กิวเมนต์ default_show ของ tray_manager.TrayManager วัตถุเป็น True หรือ False เมื่อสร้าง tray_manager.TrayManager วัตถุของคุณเพื่อกำหนดว่าไอคอนถาดระบบจะปรากฏขึ้นหรือไม่เมื่อวัตถุถูกสร้างขึ้น
ในการแสดงแอพในถาดระบบให้ใช้ฟังก์ชัน .show() ของวัตถุ tray_manager.TrayManager ตาม:
from tray_manager import TrayManager
my_tray = TrayManager ( "My App" , run_in_seperate_thread = True )
my_tray . show () ในการซ่อนแอพในถาดระบบให้ใช้ฟังก์ชัน .hide() ของวัตถุ tray_manager.TrayManager ตาม:
from tray_manager import TrayManager
my_tray = TrayManager ( "My App" , run_in_seperate_thread = True )
my_tray . hide () ในการแก้ไขรายการที่สร้างขึ้นแล้วให้ใช้ฟังก์ชั่น .edit() ของรายการเมื่อทำเช่นนั้นคุณจะต้องระบุข้อโต้แย้งที่คุณต้องการเปลี่ยนและคนอื่น ๆ จะยังคงเหมือนเดิม
ในการแก้ไขรายการทำตาม:
from tray_manager import Button
def my_first_callback ():
print ( "Hello" )
my_button . edit ( callback = my_second_callback )
def my_second_callback ():
print ( "World !" )
my_button = Button ( "My Button" , my_first_callback )
# When clicking on the button, this will display :
# First click
- > Hello
# Second click
- > World !คุณสามารถปรับแต่งรายการในรูปแบบต่าง ๆ เช่น:
หากคุณต้องการแสดงรายการ แต่คุณต้องการให้มันไม่ตอบสนอง (สำหรับปุ่ม, ช่องทำเครื่องหมายและเมนูย่อย) และดูเหมือนรายการที่ปิดใช้งานคุณสามารถใช้ฟังก์ชัน .enable() และ .disable() ของรายการ
บันทึก
โดยค่าเริ่มต้นทุกรายการจะเปิดใช้งาน
ทุกรายการสามารถปิดใช้งานได้ยกเว้นตัวคั่น
ในการเปิดใช้งานรายการของคุณให้ใช้ฟังก์ .enable() ของรายการตาม:
from tray_manager import CheckBox
def checked_callback ():
print ( "Checked" )
def unchecked_callback ():
print ( "Unchecked" )
my_checkbox = CheckBox ( "My CheckBox" , checked_callback = checked_callback , unchecked_callback = unchecked_callback )
my_checkbox . enable () หากต้องการปิดการใช้งานรายการของคุณให้ใช้ฟังก์ชัน .disable() ของรายการดังนี้:
from tray_manager import CheckBox
def checked_callback ():
print ( "Checked" )
def unchecked_callback ():
print ( "Unchecked" )
my_checkbox = CheckBox ( "My CheckBox" , checked_callback = checked_callback , unchecked_callback = unchecked_callback )
my_checkbox . disable () ในการทำให้รายการของคุณเป็นรายการเริ่มต้นของเมนู / เมนูย่อยและให้ดูเป็นตัวหนาคุณสามารถตั้งค่า default เมื่อสร้าง / แก้ไขรายการเป็น True
บันทึก
คุณสามารถมี 1 รายการเริ่มต้นโดยเมนู / เมนูย่อยเท่านั้น โดยค่าเริ่มต้นไม่มีรายการเริ่มต้น
หากต้องการตั้งค่าการรวมตัว default ของรายการให้ทำตาม:
เมื่อสร้างรายการ:
from tray_manager import Label
my_label = Label ( "My Label" , default = True )เมื่อแก้ไขรายการ:
from tray_manager import Label
my_label = Label ( "My Label" )
my_label . edit ( default = True ) หากคุณต้องการให้รูปลักษณ์ใหม่ไปยังช่องทำเครื่องหมายปกติของคุณคุณสามารถตั้งค่า use_radio_look มารวมกันของช่องทำเครื่องหมายเป็น True เมื่อสร้าง / แก้ไขช่องทำเครื่องหมาย
หากต้องการตั้งค่า use_radio_look มาจากรายการให้ทำตาม:
เมื่อสร้างรายการ:
from tray_manager import CheckBox
def checked_callback ():
print ( "Checked" )
def unchecked_callback ():
print ( "Unchecked" )
my_checkbox = CheckBox ( "My CheckBox" , checked_callback = checked_callback , unchecked_callback = unchecked_callback , use_radio_look = True )เมื่อแก้ไขรายการ:
from tray_manager import CheckBox
def checked_callback ():
print ( "Checked" )
def unchecked_callback ():
print ( "Unchecked" )
my_checkbox = CheckBox ( "My CheckBox" , checked_callback = checked_callback , unchecked_callback = unchecked_callback )
my_checkbox . edit ( use_radio_look = True ) ก่อนที่จะใช้คุณสมบัติของ tray_manager package คุณ ต้อง ตรวจสอบว่าพวกเขาเข้ากันได้กับระบบปฏิบัติการของคุณหรือไม่ ในการทำเช่นนั้นให้ใช้วัตถุ tray_manager.Os_Support มีคุณสมบัติแตกต่างกัน 4 อย่างที่คุณต้องตรวจสอบก่อนใช้:
หากต้องการทราบว่าระบบปฏิบัติการของคุณรองรับคุณสมบัติของตัวแปร Os_Support ที่สอดคล้องกันจะต้องเป็นจริงหรือไม่
ตัวอย่างเพื่อตรวจสอบว่าระบบปฏิบัติการของคุณรองรับเมนูทำตาม:
from tray_manager import Os_Support
if Os_Support . SUPPORT_MENU :
print ( "The menu is supported by your OS" )
else :
print ( "The menu isn't supported by your OS" )บันทึก
นี่คือแผนภูมิของคุณสมบัติที่ ควร และ ไม่ควร ได้รับการสนับสนุนจากแต่ละระบบปฏิบัติการและแบ็กเอนด์
| ฟีเจอร์ OS และแบ็กเอนด์ | Windows (Win32) | Linux (GTK) | Linux (Appindicator) | Linux (Ayatana-Appindicator) | Linux (Xorg) | macos (ดาร์วิน) |
|---|---|---|---|---|---|---|
| เมนู | ที่ได้รับการสนับสนุน | ที่ได้รับการสนับสนุน | ที่ได้รับการสนับสนุน | ที่ได้รับการสนับสนุน | ไม่รองรับ | ที่ได้รับการสนับสนุน |
| ค่าเริ่มต้น | ที่ได้รับการสนับสนุน | ที่ได้รับการสนับสนุน | ไม่รองรับ | ไม่รองรับ | ที่ได้รับการสนับสนุน | ไม่รองรับ |
| วิทยุ | ที่ได้รับการสนับสนุน | ที่ได้รับการสนับสนุน | ที่ได้รับการสนับสนุน | ที่ได้รับการสนับสนุน | ที่ได้รับการสนับสนุน | ไม่รองรับ |
| การแจ้ง | ปัจจุบันไม่ได้รับ | ไม่รู้จัก | UNOWN | ไม่รู้จัก | ไม่รองรับ | ไม่รองรับ |
หากคุณต้องการสร้างการแจ้งเตือนบนหน้าจอของผู้ใช้คุณสามารถใช้วัตถุ tray_manager.TrayManager.notification
ในการสร้างการแจ้งเตือนให้ใช้ฟังก์ชัน .notify() ของ tray_manager.TrayManager.notification Object ตาม:
from tray_manager import TrayManager
my_tray = TrayManager ( "My App" , run_in_separate_thread = True )
notification = my_tray . notification
notification . notify ( "My App" , "Hello World !" ) คุณสามารถระบุความล่าช้าหลังจากที่การแจ้งเตือนจะถูกลบออกโดยส่งผ่านค่า ในวินาที ไปยังฟังก์ชัน .notify() เป็น remove_after_s ตาม:
from tray_manager import TrayManager
my_tray = TrayManager ( "My App" , run_in_separate_thread = True )
notification = my_tray . notification
notification . notify ( "My App" , "Hello World !" , remove_after_s = 10 )
# The notification will close by itself after 10 seconds นอกจากนี้คุณยังสามารถใช้ฟังก์ชั่น .remove_notification() เพื่อลบการแจ้งเตือนด้วยตนเองตาม:
from tray_manager import TrayManager
my_tray = TrayManager ( "My App" , run_in_separate_thread = True )
notification = my_tray . notification
notification . notify ( "My App" , " Hello World !)
# Some code here
notification . remove_notification ()คำเตือน
โดยค่าเริ่มต้นการแจ้งเตือนจะ ไม่ ปิดตัวเองตรวจสอบให้แน่ใจว่าได้ปิดก่อนที่จะสร้างใหม่
หากคุณต้องการคุณสมบัติเฉพาะคุณสามารถตั้งค่าอาร์กิวเมนต์ backend เอนด์ของ tray_manager.TrayManager วัตถุเป็นหนึ่งในค่า tray_manager.Backends
บันทึก
โดยค่าเริ่มต้น Pystray จะใช้แบ็กเอนด์ที่ดีที่สุดในระบบปฏิบัติการของคุณ
คำเตือน
คุณ ต้อง ใช้แบ็กเอนด์จากคลาส tray_manager.Backends ผ่านค่าของหนึ่งในวัตถุของคลาสจะทำให้เกิดข้อผิดพลาด
คุณ ต้อง ใช้แบ็กเอนด์ที่เข้ากันได้กับระบบปฏิบัติการของคุณ
| ระบบปฏิบัติการ | แบ็กเอนด์ |
|---|---|
| หน้าต่าง | win32 |
| แม็กอส | darwin |
| ลินเวกซ์ | gtk , appindicator , ayatana-appindicator , xorg |