#wxpython #wxglade
#wxpython #wxglade
Вопрос:
Возможно ли создать фрейм wxpython с несколькими экземплярами одного и того же стандартного идентификатора?
Я бы хотел, чтобы в моем приложении было несколько кнопок «ПРИМЕНИТЬ», и я нашел довольно удобным использовать ID_APPLY, поскольку тематические значки и метки предварительно определены. У каждой кнопки есть определенный обработчик. Однако все связанные обработчики запускаются любой из этих кнопок.
Есть ли способ добиться этого или мой подход обречен на то, что обработчики привязаны к идентификаторам внутри?
Ответ №1:
Это обречено. Вам было бы лучше создать подкласс wx.Button, который имеет тот же внешний вид, что и кнопка, которую вы хотите. Затем вы можете просто создать экземпляры этой кнопки и привязать их к любому обработчику событий, который вы хотите.
С другой стороны, если вы можете задать для каждой кнопки уникальное имя, вы можете использовать оператор if в одном обработчике событий, чтобы определить, какая кнопка какая, и вызвать другой метод на основе этого. См. http://www.blog.pythonlibrary.org/2011/09/20/wxpython-binding-multiple-widgets-to-the-same-handler / для получения более подробной информации. Я подозреваю, что wx.ID_APPLY переопределит имя виджета, но я не уверен. В любом случае стоит попробовать.
Комментарии:
1. Здравствуйте, подтверждает ли это, что обработчики внутренне привязаны к идентификаторам ?
2. Кстати, я провел краткий тест, который показал, что у вас может быть 2 кнопки с одинаковым идентификатором акции, но разными именами. Таким образом, ваш метод должен работать с идентификаторами акций.
3. Вы должны задать этот вопрос в группе wxPython Google. Я не уверен в ответе