从Tkinter for Python的Text小部件中删除空边框

时间:2014-05-16 17:56:04

标签: python tkinter

我有两个Text小部件放在tkinter窗口中。我的问题是第二行的空边框隐藏了第一行的一部分。

enter image description here

我查看http://effbot.org/tkinterbook/text.htm,但所有默认的边框内容都设置为0。

这是我的代码,谢谢!

import Tkinter, tkFont, random    

root=Tkinter.Tk()
root.geometry('+%d+%d' % (0,0)) #controls where the window is
root.geometry('%dx%d' % (600,350)) #controls window size
root.config(background="#fff")

firstLine = "First Line"
secondLine = "Second Line" 

customFont = tkFont.Font(family="Agency FB",
                         size=100,
                         weight="bold")


text1 = Tkinter.Text(root,
                    font=customFont,
                    background="#fff",
                    fg="#000",
                    relief="flat")

text1.insert("end",firstLine)

text1.config(state='disabled')
text1.place(x=10,y=10) #controls where the text is placed

text2 = Tkinter.Text(root,
                    font=customFont,
                    background="#fff",
                    fg="#000",
                    relief="flat")

text2.insert("end",secondLine)

text2.config(state='disabled')
text2.place(x=10,y=125) #controls where the number is placed

root.mainloop()

1 个答案:

答案 0 :(得分:1)

我认为有几件事情是错误的。

首先,您声称第二个边框超过了第一个边框,但这在技术上并不准确。您所看到的不是边框,而是围绕字体的间距。将border或highlightthickness属性设置为零不会解决此问题,因为它是文本小部件的内部空间。

其次,您似乎可能会假设大小为100的字体高达100像素。情况并非如此 - 100表示100 points 高,而不是100 像素高。您可以将-100的大小指定为100像素高。

第三,您正在使用place,这意味着您明确地将第二个小部件放在第一个小部件之上。同样,我的猜测是你将它放在125的y坐标上,因为你认为另一个是100个小部件高,事实并非如此。

如果您正在尝试精确放置文本,则应该使用带有一些文本项的画布。小工具不是这项工作的最佳工具。