如何在 Tkinter 中创建不带标题栏的可调整大小的窗口?

tkinterpythongui-programming更新于 2025/7/18 15:40:17

要创建不带标题栏的 tkinter 窗口,我们可以使用 overrideredirect(boolean) 属性,该属性可从 tkinter 窗口顶部禁用导航面板。但是,它不允许用户立即调整窗口大小。

如果我们需要以编程方式创建不带标题栏的可调整大小的窗口,那么我们可以在 Tkinter 中使用 Sizegrip(parent) 小部件。Sizegrip  小部件为应用程序增加了可扩展性,允许用户拉动和调整主窗口的大小。要使用 Sizegrip  小部件,我们必须绑定鼠标按钮和一个函数,该函数在拉动手柄时会调整窗口大小。

示例

# 导入所需的库
from tkinter import *
from tkinter import ttk

# 创建 tkinter 框架或窗口的实例
win=Tk()

# 设置窗口的大小
win.geometry("700x350")

# 删除窗口的标题栏
win.overrideredirect(True)

# 定义一个用于调整窗口大小的函数
def moveMouseButton(e):
   x1=winfo_pointerx()
   y1=winfo_pointery()
   x0=winfo_rootx()
   y0=winfo_rooty()

   win.geometry("%s x %s" % ((x1-x0),(y1-y0)))

# 添加标签小部件
label=Lab​​el(win,text="抓住右下角以调整窗口大小")
label.pack(side="top", fill="both", expand=True)

# 添加用于调整窗口大小的抓取器
grip=ttk.Sizegrip()
grip.place(relx=1.0, depend=1.0, anchor="se")
grip.lift(label)
grip.bind("<B1-Motion>", moveMouseButton)

win.mainloop()

如果我们运行上述代码,它将显示一个没有任何标题栏的窗口。我们可以通过从右下角拉动手柄来调整此窗口的大小。

输出


相关文章


有用资源