Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

ตัวควบคุมปรับขนาดหน้าต่าง (Window Resizer Control Panel) ใน Tkinter

ในบทความนี้ เราจะสร้างแผงควบคุมปรับขนาดหน้าต่าง (Window Resizer Control Panel) แบบ GUI ที่มีแผงเลื่อน (slider) สำหรับปรับขนาดหน้าต่างตามความสูงหรือความกว้าง

เพื่อสร้างแอปพลิเคชัน เราจะสร้าง Slider ที่ช่วยปรับขนาดหน้าต่าง Slider มีอยู่ใน ttk library ของ tkinter เราจะ import "ttk" ก่อน แล้วเปิดหน้าต่างใหม่ที่ต้องการปรับขนาด

ลอง import ไลบรารีที่จำเป็นและออกแบบแถบควบคุมด้วย Slider

ตัวอย่าง (ส่วนที่ 1: สร้าง GUI)

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

# Create Object
win = Tk()

# Set title
win.title("Window Resizer")
lab = Label(win, text="Window Resizer", font=('Poppins bold', 20))

# Define the geometry for the window or frame
win.geometry("500x500")

# Create a button to launch a new window
launch_button = Button(win, text="Launch")
launch_button.pack(pady=10)

# Add Label Frames for width, height and both
width_frame = LabelFrame(win, text="Width")
width_frame.pack(pady=10)

height_frame = LabelFrame(win, text="Height")
height_frame.pack(pady=10)

both_frame = LabelFrame(win, text="Both")
both_frame.pack(pady=10)

# Width Slider
width_slider = ttk.Scale(width_frame, from_=100, to=500, orient=HORIZONTAL, length=200, value=100)
width_slider.pack(pady=10, padx=20)

# Height Slider
height_slider = ttk.Scale(height_frame, from_=100, to=500, orient=VERTICAL, length=200, value=100)
height_slider.pack(pady=10, padx=20)

# Both Slider
both_slider = ttk.Scale(both_frame, from_=100, to=500, orient=HORIZONTAL, length=200, value=100)
both_slider.pack(pady=10, padx=20)

# Keep running the window
win.mainloop()

หลังจากสร้าง GUI สำหรับ Slider และควบคุมแล้ว เราจะกำหนดฟังก์ชันต่างๆ ที่จะถูกเรียกใช้ใน Slider และการควบคุมหน้าต่าง

ก่อนอื่น สร้างฟังก์ชันสำหรับเปิดหน้าต่างใหม่ที่จะแสดงการควบคุม จากนั้นกำหนดฟังก์ชันสำหรับความกว้าง ความสูง และทั้งสองอย่าง

หลังจากกำหนดฟังก์ชันแล้ว จะเป็นดังนี้:

ตัวอย่าง (ส่วนที่ 2: เพิ่มฟังก์ชันการทำงาน)

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

# Create Object
win = Tk()

# Set title
win.title("Window Resizer")
lab = Label(win, text="Window Resizer", font=('Poppins bold', 20))

# Define the geometry for the window or frame
win.geometry("500x500")

# Define Functions for all different events

# Open New Window
def launch_win():
    global win1
    win1 = Toplevel()
    win1.geometry("100x100")

# Change width
def change_width(x):
    win1.geometry(f"{int(width_slider.get())}x{int(height_slider.get())}")

# Change height
def change_height(x):
    win1.geometry(f"{int(width_slider.get())}x{int(height_slider.get())}")

# Change both width and height
def change_both(x):
    win1.geometry(f"{int(both_slider.get())}x{int(both_slider.get())}")

# Create a button to launch a new window
launch_button = Button(win, text="Launch", command=launch_win)
launch_button.pack(pady=10)

# Add Label Frames for width, height and both
width_frame = LabelFrame(win, text="Width")
width_frame.pack(pady=10)

height_frame = LabelFrame(win, text="Height")
height_frame.pack(pady=10)

both_frame = LabelFrame(win, text="Both")
both_frame.pack(pady=10)

# Width Slider
width_slider = ttk.Scale(width_frame, from_=100, to=500, orient=HORIZONTAL, length=200, command=change_height, value=100)
width_slider.pack(pady=10, padx=20)

# Height Slider
height_slider = ttk.Scale(height_frame, from_=100, to=500, orient=VERTICAL, length=200, command=change_width, value=100)
height_slider.pack(pady=10, padx=20)

# Both Slider
both_slider = ttk.Scale(both_frame, from_=100, to=500, orient=HORIZONTAL, length=200, command=change_both, value=100)
both_slider.pack(pady=10, padx=20)

# Keep Running the window or frame
win.mainloop()

ผลลัพธ์

การรันโค้ดข้างต้นจะสร้าง Window Resizer

ตัวควบคุมปรับขนาดหน้าต่าง (Window Resizer Control Panel) ใน Tkinter