2011-08-15 32 views
15

Dưới đây là một ví dụ rất nhỏ của một AppIndicator:Ràng buộc Python AppIndicator -> howto kiểm tra xem menu có đang mở không?

#!/usr/bin/python 

import gobject 
import gtk 
import appindicator 

if __name__ == "__main__": 
    ind = appindicator.Indicator("example-simple-client", "gtk-execute", appindicator.CATEGORY_APPLICATION_STATUS) 
    ind.set_status (appindicator.STATUS_ACTIVE) 
    menu = gtk.Menu() 
    menu_items = gtk.MenuItem('Quit') 
    menu.append(menu_items) 
    menu_items.connect("activate", gtk.main_quit) 
    menu_items.show() 
    ind.set_menu(menu) 
    gtk.main() 

Thật không may là tài liệu hướng dẫn về vấn đề này là rất không đầy đủ. Những gì tôi đang tìm kiếm là một cách để kiểm tra xem trình đơn AppIndicator có được người dùng mở hay không (ví dụ: biểu tượng chỉ báo đã được nhấp). Vì vậy, có một tín hiệu, đó là phát ra khi trình đơn được mở ra?

+0

Có thể tài liệu đã hoàn thành và chức năng chỉ là, theo thiết kế, rất hạn chế. Nếu bạn chưa thử, bạn nên vào Freenode và cố gắng hỏi trực tiếp mọi người Unity. – dumbmatter

+1

Nó không phải là không đầy đủ, nó đã được * thận trọng *. Động lực * lớn * cho AppIndicator là có ** tính đồng nhất ** và ** tính đồng nhất ** của cả giao diện và ** cách sử dụng **. Nếu mọi người bắt đầu tạo các hành động ngẫu nhiên để nhấp vào biểu tượng hoặc nhấp chuột phải vào biểu tượng đó, chẳng bao lâu, mỗi ứng dụng sẽ làm như vậy theo cách tùy chỉnh của riêng họ và các chỉ số sẽ bị rối loạn như Systray. – MestreLion

Trả lời

7

Dường như câu trả lời là không may.

print gobject.signal_list_names(ind) 
('new-icon', 'new-attention-icon', 'new-status', 'new-label', 'x-ayatana-new-label', 'connection-changed', 'new-icon-theme-path') 

Tôi đã thử tất cả chúng và không có biểu tượng nào trong số chúng xuất hiện để kích hoạt khi chỉ báo được nhấp. Đối với những gì nó có giá trị các nhà phát triển đoàn kết dường như muốn giữ cho tất cả các chỉ số hành xử một cách thống nhất, vì vậy nó khá có thể là nó cố tình hạn chế.

+0

Đó cũng là tài liệu hướng dẫn nói http://developer.ubuntu.com/api/ubuntu-11.04/libappindicator/libappindicator-app-indicator.html#AppIndicator – skrat

+0

Tất nhiên điều này là có chủ ý. Tính nhất quán và tính đồng nhất sẽ bị vứt bỏ khi bạn cho phép ứng dụng tạo hành động tùy chỉnh cho nhấp chuột phải, nhấp đúp, di chuột qua, v.v. Đây là dịch bệnh trong cửa sổ và tôi rất vui vì nó không được phép trong AppIndicator – MestreLion

Các vấn đề liên quan