tkinter顶栏问题

请问怎么解决tkinter的顶部留白的问题,在没人让他顶部没有留白?

img

使用无边框窗口
可以使用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()

注意:使用自定义窗口边框的方法可能会导致一些窗口管理器的功能失效,如最小化、最大化和移动窗口等。

不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 这个问题的回答你可以参考下: https://ask.csdn.net/questions/7735641
  • 这篇博客也不错, 你可以看下tkinter中当鼠标移动到指定控件时,进行文字提醒的控件和点击鼠标右键时,弹出菜单栏的控件的设计与实现
  • 除此之外, 这篇博客: tkinter设置窗体属性及获取属性中的 tkinter窗体居中显示的代码 部分也许能够解决你的问题, 你可以仔细阅读以下内容或者直接跳转源博客中阅读:

      上一篇文章,我简单讲解了窗体的在屏幕位置的设置,这里,稍详细一下。设置窗体位置的代码如:

    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.comicon-default.png?t=LA46http://www.wb98.com  网站还有相关的系列课程文章,感兴趣的的可以前往。

    下一篇文章,讲解tkinter的组件(组件英文为: widget),先讲“标签”组件。

     

  • 您还可以看一下 董付国老师的Python可以这样学(第二季:tkinter案例精选)课程中的 实用tkinter实现登录界面小节, 巩固相关知识点

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^