【发布时间】:2015-06-27 05:35:18
【问题描述】:
我想删除使用tkinter 制作的应用程序的窗口边框。
我已经用过overrideredirect(1),但它并没有让我满意:它按照我的意愿移除了窗口边框,但它也移除了任务栏上的图标。
我怎样才能删除窗口边框?
【问题讨论】:
我想删除使用tkinter 制作的应用程序的窗口边框。
我已经用过overrideredirect(1),但它并没有让我满意:它按照我的意愿移除了窗口边框,但它也移除了任务栏上的图标。
我怎样才能删除窗口边框?
【问题讨论】:
我想这就是你所要求的。我不知道您是否可以在不使用Toplevel 的情况下执行此操作,但这里有一个小示例,说明您可以执行哪些操作来删除窗口边框并将图标保留在任务栏中。
import tkinter as tk
root = tk.Tk()
root.attributes('-alpha', 0.0) #For icon
#root.lower()
root.iconify()
window = tk.Toplevel(root)
window.geometry("100x100") #Whatever size
window.overrideredirect(1) #Remove border
#window.attributes('-topmost', 1)
#Whatever buttons, etc
close = tk.Button(window, text = "Close Window", command = lambda: root.destroy())
close.pack(fill = tk.BOTH, expand = 1)
window.mainloop()
然后你可以添加按钮,标签,任何你想要的东西window
【讨论】:
如果您使用的是 Canvas(因为该线程是 Google 中的第一个结果)并且您的这些边框让您烦恼,当您希望您的画布成为窗口时,Canvas 的构造函数有一个参数应该适合您的需求:highlightthickness=0
import tkinter as tk
root = tk.Tk()
root.overrideredirect(True)
w, h = 800, 500
canvas = tk.Canvas(root, width=w, height=h, highlightthickness=0)
# ...
# Do your things in your canvas
# ...
canvas.pack(fill='both')
root.mainloop()
【讨论】: