2015-06-17 2 views
-1
Scale(self, command=self.onMove, movesvariable=self.var, from_=1, to=10,orient=HORIZONTAL,length=500,tickinterval=0.5, resolution=0.1, cursor = 'hand2 ').grid(columnspan ='200',rowspan = '4',sticky= W) 

Вот мой код для масштабирования, я хочу инициализировать значение шкалы до 2. Как я могу это сделать. Поскольку я использовал сетку, .set не будет работать propelyУстановите начальное значение для шкалы

+0

_ "потому что я использую сетку, .set не будет правильно задавать слова [sic]". Правильное решение - переместить вызов на '.grid' на отдельной строке. Просто нечего делать в одной строке. –

+0

Я исправил эту проблему, но когда я увеличу виджет, он не будет исправлять его размер, есть ли у вас хорошие решения этой проблемы? –

ответ

1

Изменить это на две линии:

yourScale = Scale(self, command=self.onMove, movesvariable=self.var, from_=1, to=10,orient=HORIZONTAL,length=500,tickinterval=0.5, resolution=0.1, cursor = 'hand2 ') 
yourScale.grid(columnspan ='200',rowspan = '4',sticky= W) 

.grid() возвращает None; вызывая его после того, как Scale, как вы это сделали, не вернет объект Scale, как вы ожидали, он вернет Nonetype. Реализация этого небольшое изменение должно позволить вам использовать .set на любой переменной хранить объект Scale в (yourScale в данном примере)

Как и в сторону:. Вы можете удалить set тег в вашем вопросе: set ссылается на данные структура, а не заданная функция от Tkinter.

+0

спасибо большое, он решил мою проблему ~~ –

+0

Я исправил эту проблему, но когда я увеличу виджет, он не будет исправлять его размер, есть ли у вас какие-либо хорошие решения этой проблемы? –

+0

Вы имеете в виду, что масштаб не может быть увеличен для размещения увеличенного виджета, или он ** делает больше, и вы не хотите этого? – maccartm

Смежные вопросы