【问题标题】:Specifying the dimensions of a Tkinter Text Widget in pixels?以像素为单位指定 Tkinter 文本小部件的尺寸?
【发布时间】:2012-05-14 21:12:00
【问题描述】:

我正在尝试在 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!")

现在,当我单击按钮时,文本确实变大了,但整个小部件会自行调整大小以进行补偿!我认为这是因为小部件的大小是根据“行”和“字符”而不是像素来指定的。如何阻止小部件调整大小?

我尝试过不更改小部件的字体,而只是插入带有指定新字体的标签的文本,这是可行的,但问题是当我在左侧和右侧手动键入新文本时插入的文本,它是默认样式,而不是我想要的大小。

【问题讨论】:

    标签: python tkinter


    【解决方案1】:

    我在此页面上找到了我的问题的答案:How to stop Tkinter Text widget resize on font change?

    关键是构建一个框架来放置文本小部件,以像素为单位指定框架大小,并在框架上调用grid_propagate(False)以防止它在文本小部件想要调整大小时调整大小。

    【讨论】:

      猜你喜欢
      • 2016-05-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-02-16
      • 1970-01-01
      • 2011-10-16
      • 1970-01-01
      • 2020-11-20
      相关资源
      最近更新 更多