如何在没有标题栏的情况下用 Tkinter 创建一个可调整的窗口?


若要创建没有任何标题栏的 Tkinter 窗口,我们可以使用 overrideredirect(布尔) 属性,它从 Tkinter 窗口顶部禁用导航面板。然而,它不会允许用户立即调整窗口大小。

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

示例

# Import the required libraries
from tkinter import *
from tkinter import ttk

# Create an instance of tkinter frame or window
win=Tk()

# Set the size of the window
win.geometry("700x350")

# Remove the Title bar of the window
win.overrideredirect(True)

# Define a function for resizing the window
def moveMouseButton(e):
   x1=winfo_pointerx()
   y1=winfo_pointery()
   x0=winfo_rootx()
   y0=winfo_rooty()

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

# Add a Label widget
label=Label(win,text="Grab the lower-right corner to resize the window")
label.pack(side="top", fill="both", expand=True)

# Add the gripper for resizing the window
grip=ttk.Sizegrip()
grip.place(relx=1.0, rely=1.0, anchor="se")
grip.lift(label)
grip.bind("<B1-Motion>", moveMouseButton)

win.mainloop()

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

输出

更新于:18-Jun-2021

4K+ 浏览量

开启您的 职业生涯

完成课程,取得认证

入门
广告
© . All rights reserved.