Я пытаюсь создать довольно простой электронный ридер, и мне удалось использовать tkinter для создания чего-то сродни одному. Но я не могу понять, как создать полосу прокрутки, чтобы пользователь мог прокручивать текст по своему желанию. Я могу заставить его работать в других частях кодирования, но я не могу заставить его работать в этой программе, и я не могу решить, в чем проблема. Я поместил мой простой электронный читатель, без попытки прокрутки ниже.Прокрутка в текстовом поле
from Tkinter import *
import tkFileDialog
import ScrolledText
class Example(Frame):
def __init__(self, parent):
Frame.__init__(self, parent)
self.parent = parent
self.initUI()
def initUI(self):
self.parent.title("File dialog")
self.pack(fill=BOTH, expand=1)
menubar = Menu(self.parent)
self.parent.config(menu=menubar)
fileMenu = Menu(menubar)
fileMenu.add_command(label="Open", command=self.onOpen)
menubar.add_cascade(label="File", menu=fileMenu)
self.txt = Text(self)
self.txt.pack(fill=BOTH, expand=1)
def onOpen(self):
ftypes = [('Python files', '*.py'), ('All files', '*')]
dlg = tkFileDialog.Open(self, filetypes = ftypes)
fl = dlg.show()
if fl != '':
text = self.readFile(fl)
self.txt.insert(END, text)
def readFile(self, filename):
f = open(filename, "r")
text = f.read()
return text
self.txt = ScrolledText(self, undo=True)
self.txt['font'] = ('consolas', '12')
self.txt.pack(expand=True, fill='both')
def main():
root = Tk()
ex = Example(root)
root.geometry("300x250+300+300")
root.mainloop()
if __name__ == '__main__':
main()
Как мы узнаем, что вы делаете неправильно, если опустите один кусок кода, который не работает? Пожалуйста, покажите нам код _with_ полоса прокрутки, которая не работает. Кроме того, ваш отступ выглядит перепутанным - посмотрите в конец с помощью 'def main (0)' и следующего кода. –
Вы пробовали использовать 'ScrolledText'? –
Извините, что вы правы, Брайан, я должен был включить всю кодировку. И да Тобиас, scrolledtext - это тот, который я использовал, как мне было рекомендовано, но я не могу его реализовать. Я уверен, что это что-то очень глупое, что я делаю, но я просто не вижу его как новичка. – Rusky