Я искал, как это сделать, но я не могу найти его нигде. Я даже догадался, как включить / отключить элемент быстрого списка, чтобы добавить функцию, вызванную после щелчка элемента, но это все. Любые идеи?
Я хочу сделать быстрый список для своего приложения, которое будет состоять из флажков или переключателей. Я нашел информацию о том, как добавить элементы без связанного действия в quicklist ( tutorial ), но это все, что я нашел, нет информации о том, как добавлять другие типы элементов (флажки, переключатели, горизонтальные разделители или элемент со связанным действием), которые упоминаются там. Я пытаюсь получить что-то вроде этого .
Я не уверен, что это правильно, но я использую что-то вроде этого:
checkbox: def check_item_activated_callback (menuitem, a, b): if menuitem.property_get_int (Dbusmenu.MENUITEM_PROP_TOGGLE_STATE) == Dbusmenu.MENUITEM_TOGGLE_STATE_CHECKED: menuitem.property_set_int (Dbusmenu.MENUITEM_PROP_TOGGLE_STATE, Dbusmenu.MENUITEM_TOGGLE_STATE_UNCHECKED) else: menuitem.property_set_int (Dbusmenu.MENUITEM_PROP_TOGGLE_STATE, Dbusmenu.MENUITEM_TOGGLE_STATE_CHECKED) check1 = Dbusmenu.Menuitem.new () check1.property_set (Dbusmenu.MENUITEM_PROP_LABEL, "Checkbox") check1.property_set (Dbusmenu.MENUITEM_PROP_TOGGLE_TYPE, Dbusmenu.MENUITEM_TOGGLE_CHECK) check1.property_set_int (Dbusmenu.MENUITEM_PROP_TOGGLE_STATE, Dbusmenu.MENUITEM_TOGGLE_STATE_CHECKED) check1.property_set_bool (Dbusmenu.MENUITEM_PROP_VISIBLE, True) check1.connect (Dbusmenu.MENUITEM_SIGNAL_ITEM_ACTIVATED, check_item_activated_callback, None) qucklist.child_append (check1) checkbox: [ ! d3] def radio_item_activated_callback (radioitem1, a, radioitem2): radioitem1.property_set_int (Dbusmenu.MENUITEM_PROP_TOGGLE_STATE, Dbusmenu.MENUITEM_TOGGLE_STATE_CHECKED) radioitem2.property_set_int (Dbusmenu.MENUITEM_PROP_TOGGLE_STATE, Dbusmenu.MENUITEM_TOGGLE_STATE_UNCHECKED) radio1 = Dbusmenu.Menuitem.new () radio1.property_set (Dbusmenu.MENUITEM_PROP_LABEL, "Radio Button 1") radio1.property_set (Dbusmenu.MENUITEM_PROP_TOGGLE_TYPE, Dbusmenu.MENUITEM_TOGGLE_RADIO) radio1.property_set_int (Dbusmenu.MENUITEM_PROP_TOGGLE_STATE, Dbusmenu.MENUITEM_TOGGLE_STATE_UNCHECKED) radio1.property_set_bool (Dbusmenu.MENUITEM_PROP_VISIBLE, True) quicklist.child_append (radio1) radio2 = Dbusmenu.Menuitem.new() radio2.property_set (Dbusmenu.MENUITEM_PROP_LABEL, "Radio Button 2") radio2.property_set (Dbusmenu.MENUITEM_PROP_TOGGLE_TYPE, Dbusmenu.MENUITEM_TOGGLE_RADIO) radio2.property_set_int (Dbusmenu.MENUITEM_PROP_TOGGLE_STATE, Dbusmenu.MENUITEM_TOGGLE_STATE_CHECKED) radio2.property_set_bool (Dbusmenu.MENUITEM_PROP_VISIBLE, True) quicklist.child_append (radio2) radio1.connect (Dbusmenu.MENUITEM_SIGNAL_ITEM_ACTIVATED, radio_item_activated_callback, radio2) radio2.connect (Dbusmenu.MENUITEM_SIGNAL_ITEM_ACTIVATED, radio_item_activated_callback, radio1) разделитель (ака «горизонтальные разделители»): separator = Dbusmenu.Menuitem.new (); separator.property_set (Dbusmenu.MENUITEM_PROP_TYPE, Dbusmenu.CLIENT_TYPES_SEPARATOR) separator.property_set_bool (Dbusmenu.MENUITEM_PROP_VISIBLE, True) quicklist.child_append (separator) разделитель (ака «горизонтальные разделители»):Вот пример создания элемента быстрого списка «Тип окна»:
# Create toggle-able menu item for urgency
urgent_menu_item = Dbusmenu.Menuitem.new ()
# Set the tab's name as the menu item's name
urgent_menu_item.property_set (Dbusmenu.MENUITEM_PROP_LABEL, _('Urgent'))
# Make the menu item toggle-able
urgent_menu_item.property_set(Dbusmenu.MENUITEM_PROP_TOGGLE_TYPE, Dbusmenu.MENUITEM_TOGGLE_CHECK)
urgent_menu_item.property_set_int(Dbusmenu.MENUITEM_PROP_TOGGLE_STATE, Dbusmenu.MENUITEM_TOGGLE_STATE_UNCHECKED)
urgent_menu_item.connect('item_activated', self.urgent_menu_item_activated)
# Make the menu item visible
urgent_menu_item.property_set_bool (Dbusmenu.MENUITEM_PROP_VISIBLE, True)
# Add the section's menu item to the Quicklist menu
quicklist.child_append(urgent_menu_item)
И вот один из пунктов меню Quicklist Quicklist:
# Create a new item for this section
section_menu_item = Dbusmenu.Menuitem.new ()
# Set the tab's name as the menu item's name
section_menu_item.property_set (Dbusmenu.MENUITEM_PROP_LABEL, tab_name)
# Make the menu item toggle-able
section_menu_item.property_set(Dbusmenu.MENUITEM_PROP_TOGGLE_TYPE, Dbusmenu.MENUITEM_TOGGLE_RADIO)
# Make the menu item visible
section_menu_item.property_set_bool (Dbusmenu.MENUITEM_PROP_VISIBLE, True)
# When the menu item is clicked, make it call menu_item_activated
# with the tab id, which is used to make that the active tab
section_menu_item.connect('item_activated', self.section_menu_item_activated, tab_id)
# Add the section's menu item to the Quicklist menu
quicklist.child_append(section_menu_item)
Ниже приведен пример создания элемента быстрого списка «Список флажков»:
# Create toggle-able menu item for urgency
urgent_menu_item = Dbusmenu.Menuitem.new ()
# Set the tab's name as the menu item's name
urgent_menu_item.property_set (Dbusmenu.MENUITEM_PROP_LABEL, _('Urgent'))
# Make the menu item toggle-able
urgent_menu_item.property_set(Dbusmenu.MENUITEM_PROP_TOGGLE_TYPE, Dbusmenu.MENUITEM_TOGGLE_CHECK)
urgent_menu_item.property_set_int(Dbusmenu.MENUITEM_PROP_TOGGLE_STATE, Dbusmenu.MENUITEM_TOGGLE_STATE_UNCHECKED)
urgent_menu_item.connect('item_activated', self.urgent_menu_item_activated)
# Make the menu item visible
urgent_menu_item.property_set_bool (Dbusmenu.MENUITEM_PROP_VISIBLE, True)
# Add the section's menu item to the Quicklist menu
quicklist.child_append(urgent_menu_item)
И вот один из пунктов меню Quicklist Quicklist:
# Create a new item for this section
section_menu_item = Dbusmenu.Menuitem.new ()
# Set the tab's name as the menu item's name
section_menu_item.property_set (Dbusmenu.MENUITEM_PROP_LABEL, tab_name)
# Make the menu item toggle-able
section_menu_item.property_set(Dbusmenu.MENUITEM_PROP_TOGGLE_TYPE, Dbusmenu.MENUITEM_TOGGLE_RADIO)
# Make the menu item visible
section_menu_item.property_set_bool (Dbusmenu.MENUITEM_PROP_VISIBLE, True)
# When the menu item is clicked, make it call menu_item_activated
# with the tab id, which is used to make that the active tab
section_menu_item.connect('item_activated', self.section_menu_item_activated, tab_id)
# Add the section's menu item to the Quicklist menu
quicklist.child_append(section_menu_item)