如何将复选框或单选按钮添加到 Unity 快速列表?

qba*_*a47 7 python unity quicklists application-development

我一直在寻找如何做到这一点,但我在任何地方都找不到。我什至猜到了如何启用/禁用快速列表项,以及如何添加单击该项后调用的函数,但仅此而已。有任何想法吗?

我想为我的应用程序制作一个快速列表,其中包含复选框或单选按钮。我找到了有关如何将没有关联操作的项目添加到快速列表(教程)的信息,但这就是我发现的所有信息,没有关于如何添加其他类型的项目(复选框、单选按钮、水平分隔线或具有关联操作的项目)的信息。那里。我想要得到的东西像这样

Dam*_*ian 5

我不确定它是否正确,但我正在使用这样的东西:

  • 复选框:
def check_item_activated_callback (menuitem, a, b):
    如果 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)
    别的:
       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, "复选框")
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)
  • 单选按钮:
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, "单选按钮 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, "单选按钮 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)
  • 分隔符(又名“水平分隔符”):
分隔符 = 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(分隔符)
  • 启用/禁用菜单项:
item1 = Dbusmenu.Menuitem.new()
item1.property_set (Dbusmenu.MENUITEM_PROP_LABEL, "Item Enabled")
item1.property_set_bool (Dbusmenu.MENUITEM_PROP_VISIBLE, True)
item1.property_set_bool (Dbusmenu.MENUITEM_PROP_ENABLED, True)
quicklist.child_append (item1)

item2 = Dbusmenu.Menuitem.new()
item2.property_set (Dbusmenu.MENUITEM_PROP_LABEL, "Item Disabled")
item2.property_set_bool (Dbusmenu.MENUITEM_PROP_VISIBLE, True)
item2.property_set_bool (Dbusmenu.MENUITEM_PROP_ENABLED, False)
quicklist.child_append (item2)