Указание размеров текстового виджета Tkinter в пикселях?

Я пытаюсь создать текстовый виджет в Tkinter (для Python ), размер шрифта которого может меняться, но когда это происходит, я не хотите, чтобы виджет менял свой размер. Весь текст в виджете имеет одинаковый стиль шрифта. Что у меня есть на данный момент:

root = Tk()
t = Toplevel(root)
fnt = tkFont.Font(family="Helvetica",size=36,weight="bold",underline=1)
txt = Text(t, font=fnt, width=20, height=6)
txt.grid(row=0,column=0)
b = Button(t, text="click", command=change)
b.grid(row=1, column=0)
txt.insert(END, "This is text!")

Где changeопределяется как:

def change():
    txt.delete(1.0, END)
    fnt.config(size=100)
    txt.insert(END, "This is text!")

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

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

5
задан nbro 9 May 2015 в 16:49
поделиться