#python #wxpython
#python #wxpython
Вопрос:
То, что я хочу, — это средство удаления элемента из выпадающего списка без необходимости добавлять отдельную кнопку удаления где-либо еще. Итак, я хочу, чтобы кнопка удаления появлялась в правой части выпадающего списка при наведении на него указателя мыши. И это также нормально, если все элементы имеют кнопку удаления с правой стороны и не нуждаются в наведении курсора.
Приведенные ниже изображения проиллюстрируют то, что я говорю [… пожалуйста, игнорируйте мои навыки mspaint]
[выпадающий список с кнопкой удаления для зависшего элемента]https://i.imgur.com/kIMtF3G.jpg
[выпадающий список с кнопкой удаления для каждого элемента]https://i.imgur.com/iyG23vG.jpg
[ПРИМЕЧАНИЕ: Извините, я не могу публиковать изображения напрямую, потому что для публикации изображений требуется репутация не менее 10.]
[Я новичок в python и wxpython. Поэтому, пожалуйста, игнорируйте мое невежество, если таковое имеется. И по той же причине любой простой пример кода будет очень полезен.]
С уважением.
Ответ №1:
У wx.ComboBox
этой функции нет. Инструментарий wxPython GUI toolkit использует собственные виджеты целевой платформы. Если эти виджеты не поддерживают это, то и wxPython не поддерживает.
Однако в wxPython есть пользовательские виджеты, или вы могли бы создать свой собственный виджет для выполнения подобных действий.
Я также думаю, что вы могли бы использовать контекстное меню для этой задачи. Вам нужно будет щелкнуть правой кнопкой мыши, чтобы это заработало. Другим методом было бы привязаться к событию мыши и попытаться выяснить, где в виджете вы находитесь, но я думаю, что этот метод был бы подвержен ошибкам.
Комментарии:
1. Спасибо за ответ, я использую Win 7 Pro 32bit, я не уверен, есть ли у msw встроенная поддержка этого или нет. Я видел, что она есть в нескольких приложениях. Я не могу сказать, какой графический интерфейс они использовали. Но, как вы сказали, если это возможно с помощью пользовательских виджетов, как создать пользовательские виджеты в wxpython?? не могли бы вы, пожалуйста, уточнить или, если возможно, какой-нибудь код. Я подумываю о том, чтобы попытаться получить DC и нарисовать что-нибудь и проверить, когда указатель мыши находится в нужном месте, затем выделить его другим пользовательским рисунком, затем при нажатии получить обратный вызов с событием щелчка мыши. звучит очень запутанно.
2. Но правильный ли это подход? Я имею в виду, на правильном ли пути моя мысль??? Но если да, мне все еще нужно выяснить, как получить конкретный DC, как рисовать на нем и т.д. И т.п. Тогда я буду чаще беспокоить вас, люди… 😀 : D 😀
3. Я не видел встроенного виджета, который допускал бы это в Windows. Но вы можете посмотреть на пользовательские виджеты в wxPython. Все в
wx.adv
являются пользовательскими, например4. Я видел wx.adv вещь. И в wxpython пользовательские виджеты — это просто шаблоны, я думаю. Но я не собираюсь ждать, пока кто-нибудь накормит меня. Я собираюсь попытаться найти еду и накормить себя. Если какой-либо ответ приходит с этого форума, он высоко ценится. Но я не собираюсь ждать. Если я найду что-нибудь полезное, я опубликую здесь в качестве ответа. И спасибо @Mike Driscoll за то, что нашли время помочь.