请问怎么解决tkinter的顶部留白的问题,在没人让他顶部没有留白?
使用无边框窗口
可以使用Tkinter的Toplevel组件创建一个无边框的窗口,然后在该窗口中添加其他组件。这样可以避免默认的边框和标题栏所带来的留白问题。
示例代码:
import tkinter as tk
root = tk.Tk()
创建无边框窗口
top = tk.Toplevel(root)
top.overrideredirect(True)
添加其他组件
label = tk.Label(top, text="Hello, world!")
label.pack()
root.mainloop()
自定义窗口边框
可以使用Tkinter的wm_attributes方法来自定义窗口的边框和标题栏。可以将窗口的边框和标题栏设置为无,或者将其颜色设置为与窗口背景相同,从而达到去除留白的效果。
示例代码:
import tkinter as tk
root = tk.Tk()
设置窗口边框和标题栏为无
root.overrideredirect(True)
添加其他组件
label = tk.Label(root, text="Hello, world!")
label.pack()
root.mainloop()
注意:使用自定义窗口边框的方法可能会导致一些窗口管理器的功能失效,如最小化、最大化和移动窗口等。
不知道你这个问题是否已经解决, 如果还没有解决的话:上一篇文章,我简单讲解了窗体的在屏幕位置的设置,这里,稍详细一下。设置窗体位置的代码如:
root.geometry('±100±200')
第1个参数为:+数值,表示窗口左边离屏幕左边的距离
-数值,表示窗口右边离屏幕右边的距离
第2个参数为:+数值,表示窗口上边离屏幕上边的距离
-数值,表示窗口下边离屏幕下边的距离
大家自行把上面代码的第三行代码改成下面的其中一条代码,查看窗体在屏幕的不同位置。
root.geometry('+100+200') # 窗体在屏幕左上角
root.geometry('-100-200') # 窗体在屏幕右下角
root.geometry('+100-200') # 窗体在屏幕左下角
root.geometry('-100+200') # 窗体在屏幕右上角
但在实际的程序编写中,让窗体居中显示可能更有实用性。代码如下:
a,b=300,150 # a为窗体宽度,b为窗体的高度
c=(root.winfo_screenwidth()-a)/2 # (屏幕宽度-窗体宽度)/2
d=(root.winfo_screenheight()-b)/2 # (屏幕高度-窗体高度)/2
root.geometry('%dx%d+%d+%d' % (a,b,c,d)) # c为窗口左边离屏幕左边的距离,d为窗口上边离屏幕上边的距离
以上tkinter窗口居中显示代码你可以收藏起来,使用时,只要改一下a,b的数值设置就可以行了。
解释:
root.geometry('%dx%d+%d+%d' % (a,b,c,d)) 这一代码需要你懂得python的字符串格式化知识,这里是使用%操作符来格式化字符串。
root.winfo_screenwidth() # 为获取屏幕的宽度,括号不能省
root.winfo_screenheight() # 为获取屏幕的高度,括号不能省。
此文章来自:
wb98.com下一篇文章,讲解tkinter的组件(组件英文为: widget),先讲“标签”组件。