Computer >> Máy Tính >  >> Lập trình >> Python

Làm cách nào để tạo một Windows có thể thay đổi kích thước mà không có thanh tiêu đề trong Tkinter?

Để tạo một cửa sổ tkinter không có thanh tiêu đề, chúng ta có thể sử dụng thuộc tính overrideredirect (boolean) để tắt bảng điều hướng từ đầu cửa sổ tkinter. Tuy nhiên, nó không cho phép người dùng thay đổi kích thước cửa sổ ngay lập tức.

Nếu chúng tôi được yêu cầu tạo cửa sổ có thể thay đổi kích thước mà không có thanh tiêu đề theo chương trình, thì chúng tôi có thể sử dụng Sizegrip (cha) tiện ích con trong Tkinter. Sizegrip widget bổ sung khả năng mở rộng cho ứng dụng cho phép người dùng kéo và thay đổi kích thước cửa sổ chính. Để làm việc với Sizegrip tiện ích con, chúng ta phải Ràng buộc các nút chuột và một chức năng thay đổi kích thước cửa sổ bất cứ khi nào chúng ta kéo báng cầm.

Ví dụ

# 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()

Nếu chúng ta chạy đoạn mã trên, nó sẽ hiển thị một cửa sổ không có bất kỳ thanh tiêu đề nào. Chúng ta có thể thay đổi kích thước cửa sổ này bằng cách kéo phần tay cầm từ góc dưới bên phải.

Đầu ra

Làm cách nào để tạo một Windows có thể thay đổi kích thước mà không có thanh tiêu đề trong Tkinter?