Это не сработает, и, к сожалению, я не вижу простого решения. Основная проблема здесь в том, что OptionMenu — составной виджет. Это потомок Menubutton (который по иронии судьбы помечен как устаревший/устаревший в исходниках tkinter) и содержит виджет-меню.
Afaik параметр изображения, который вы используете, упакован вместе с текстом метки и не будет «отсоединяться» при ваших попытках настройки макета. Более разумным подходом должно быть влияние на индикатор-виджет/представление, которое вы отключили с помощью IndicatorOn=0
. Но и здесь не повезло, потому что я просто не могу понять, что это за индикатор...
Кстати, это выглядит как ужасный хак:
class OptionMenu(Menubutton):
"""OptionMenu which allows the user to select a value from a menu."""
def __init__(self, master, variable, value, *values, **kwargs):
...
#'command' is the only supported keyword <--- lol?! WTF?! why?
callback = kwargs.get('command')
if kwargs.has_key('command'):
del kwargs['command']
if kwargs:
raise TclError, 'unknown option -'+kwargs.keys()[0] # yeah sure! - unknown my a** 8-/
если вы посмотрите на источник tkinter и сравните его с оригинал. Это также причина, по которой вам нужно добавить вторую строку после «инициализации».
om.config(indictoron=0,compound='right',image=arrow,width=140)
В подлинном источнике вы можете обнаружить, что первоначальная догадка о том, что кнопка является своего рода радиокнопкой, не так уж далека от поля, но она не помогает (по крайней мере, не мне) решить проблему tkinter. :-(
Мне жаль, что я не мог быть лучше .... позор мне! :( Но в следующий раз постараюсь! ;-)
person
Don Question
schedule
07.11.2012