web-dev-qa-db-fra.com

Comment ajouter des cases à cocher ou des boutons radio à une liste rapide Unity?

J'ai cherché comment y arriver, mais je ne le trouve nulle part. J'ai même deviné comment activer/désactiver l'élément de la liste rapide, donc comment ajouter une fonction invoquée après avoir cliqué sur l'élément, mais c'est tout. Des idées?

Je souhaite créer une liste rapide pour mon application, qui comprendra des cases à cocher ou des boutons radio. J'ai trouvé des informations sur la façon d'ajouter des éléments sans action associée à la liste rapide ( tutoriel ), mais c'est tout ce que j'ai trouvé, il n'y a pas d'information sur la façon d'ajouter d'autres types d'éléments (cases à cocher, boutons radio, séparateurs horizontaux ou élément avec action associée) qui y sont mentionnés. J'essaie d'obtenir quelque chose comme this .

7
qba47

Je ne suis pas sûr que ce soit correct, mais j'utilise quelque chose comme ceci:

  • case à cocher:
[Gardien] MENUITEM_TOGGLE_STATE_UNCHECKED) 
: 
 Menuitem.property_set_int (Dbusmenu.MENUITEM_PROP_TOGGLE_STATE, art. check1.property_set (Dbusmenu.MENUITEM_PROP_LABEL, "case") 
 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_)
  • boutons radio:
radioitem2.property_set_int (Dbusmenu.MENUITEM_PROP_TOGGLE_STATE, Dbusmenu.MENUITEM_TOGGLE_STATE_UNCHECKED) 
 radioitem1.property_set_int (Dbusmenu.MENUITEM_PROP_TOGGLE_STATE, Dbusmenu.MENUITEM_TOGGLE_STATE_CHECKED) 
 [: [. .____] def radio_item_activated_callback (radioitem1, a, radioitem2) .____.] 
 radio1 = Dbusmenu.Menuitem.new () 
 radio1.property_set (Dbusmenu.MENUITEM_PROP_LABEL, "Bouton radio 1") [.________. Utilisez des barres de métal. .] 
 radio2 = Dbusmenu.Menuitem.new () 
 radio2.property_set (Dbusmenu.MENUITEM_PROP_LABEL, "Bouton radio 2") 
 radio2.property_set (Dbusmenu.MENUITEM_PROP_TOGGEND MENUITEM_TOGGLE_RADIO) 
 Radio2.property_set_int (Dbusmenu.MENUITEM_PROP_TOGGLE_STATE) .MENUITEM_SIGNAL_ITEM_ACTIVATED, radio_item_activated_callback, radio2) 
 Radio2.connect (Dbusmenu.MENUITEM_SIGNAL_ITEM_ACTIVATED, radio_item_activated_callback, radio1) 
  • séparateur (aka "diviseurs horizontaux"):
 separator = Dbusmenu.Menuitem.new (); 
 separator.property_set (Dbusmenu.MENUITEMPROP_TYPE, Dbusmenu.CLIENT_TYPES_SEPARATOR) 
 separator.property_set_bool (Dbus) .] quicklist.child_append (séparateur) 
  • éléments de menu activés/désactivés:
 item1 = Dbusmenu.Menuitem.new () 
 item1.property_set (Dbusmenu.MENUITEM_PROP_LABEL, "Item activé") 
 item1.property_set_bool (Dbusmenu.MENUITE.MENUITEM, développement). .] item1.property_set_bool (Dbusmenu.MENUITEM_PROP_ENABLED, True) 
 quicklist.child_append (item1) 
 
 item2 = Dbusmenu.Menuitem.new () 
 item2.property_set (Dbusmenu.MENUITEM_PROP_LABEL, "Élément désactivé") 
 Item2.property_set_bool (Dbusmenu.MENUITEM_PROP_VISIBLE, True) 
 ) 
5
Damian

Voici un exemple de création d'un élément de menu Liste de type Case à cocher:

    # 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)

Et en voici un pour créer un élément de menu Liste rapide de type Radio:

        # 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)
4
mhall119