2015-07-01 2 views
0

Я пытаюсь добавить простой выход журнала в tk window/frame.Как я могу прокручивать текст на ярлыке tk/tinker python?

До сих пор я только нашел, как (легко) добавить вертикальную полосу прокрутки на canvas, списки входных и text (который является fullblown текстовый редактор и имеет нет textvariable ссылки поддержки)

Label не может быть присоединен до scrollbar (легко), потому что ему не хватает атрибута yview.

#my naive attempt:... 
self.lbl_log = tk.Label(self, width=80, height=10, textvariable=self.string_log) 
self.lbl_log.pack(side="top") 
self.vsb = tk.Scrollbar(self, orient="vertical", command=self.lbl_log.yview) 
self.lbl_log.configure(yscrollcommand=self.vsb.set) 

AttributeError: 'Label' object has no attribute 'yview'

есть ли простой и удобный способ для прокрутки метки виджета с несколькими строками в питоне Ках? Я не обязательно должен использовать Label, я просто люблю его, потому что он прост и имеет удобство textvariable), поэтому я открыт для альтернативных виджетов для этой проблемы.

+0

Это как раз то, что он говорит на олове: объекты «Ярлыки» не имеют «yview» и поэтому не прокручиваются. Вам придётся что-то прошивать вместе с прокручиваемыми виджетами. Имейте в виду, что «Ярлык» не предназначен для отображения чего-либо большего, чем метка. «Сообщение» больше подходит для больших блоков текста. Если он настолько велик, что ему нужно прокручивать, попробуйте объект «Text» (вы можете отключить его, чтобы предотвратить модификацию, если хотите). – TigerhawkT3

+0

Вы можете сделать перенос текста самостоятельно. Просто возьмите символ с фронта строки и поместите его в конец строки и снова установите текст. Это может иметь побочный эффект, что он будет работать быстрее и медленнее из-за разницы в ширинах символов. Это должно сработать. –

+0

Взломать эмулированную полосу прокрутки, чтобы обуздать неподходящий виджет в программе, вызовет боль. Я настоятельно рекомендую использовать виджет 'Text' как @Bryan, и я предлагаю, поскольку он предназначен для больших блоков текста и совместим с' Scrollbar'. – TigerhawkT3

ответ

0

Нет, нет простого способа прокрутки этикетки. Если вам нужно прокрутить несколько строк, ярлык является неправильным выбором виджета. Если вам нужно прокрутить несколько строк текста, текстовый виджет будет правильным виджетами.

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