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

จะกำจัดขอบวิดเจ็ตใน Tkinter ได้อย่างไร?


Tkinter มาพร้อมกับวิดเจ็ตประเภทต่างๆ เช่น Button, Entry, Frame, Label, Radiobutton, Scrollbar เป็นต้น วิดเจ็ตเป็นองค์ประกอบอินเทอร์เฟซผู้ใช้แบบกราฟิกมาตรฐาน (GUI) ที่แสดงข้อมูลหรือช่วยให้ผู้ใช้โต้ตอบกับระบบ

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

ขั้นตอน -

  • นำเข้าไลบรารีที่จำเป็นและสร้างอินสแตนซ์ของเฟรม tkinter

  • กำหนดขนาดของเฟรมโดยใช้ root.geometry วิธีการ

  • ถัดไป สร้าง Canvas และกำหนดความกว้างของเส้นขอบของผืนผ้าใบด้วย "bd" คุณลักษณะ. จากนั้นใช้ "highlightthickness" คุณลักษณะเพื่อกำหนดว่าคุณต้องการแสดงเส้นขอบผ้าใบหรือไม่ ตั้งค่า "highlightthickness=0" ในกรณีที่คุณต้องการกำจัดขอบผ้าใบ

  • กำหนดฟังก์ชันที่ผู้ใช้กำหนดอีกสองฟังก์ชัน start() และ หยุด() เพื่อควบคุม infinite_loop . กำหนดตัวแปรส่วนกลาง "เงื่อนไข" . ข้างใน start() , set condition=True และภายใน stop() , ตั้งค่า condition=False .

  • ถัดไป สร้างฟิลด์รายการสองฟิลด์ภายใน Canvas ใช้ ความกว้างของเส้นขอบ คุณลักษณะเพื่อกำหนดเส้นขอบของหนึ่งช่องรายการ

  • ในทำนองเดียวกัน ให้สร้างป้ายกำกับสองป้ายและใช้ ความกว้างขอบ แอตทริบิวต์ที่มี relief='solid' เพื่อแสดงเส้นขอบรอบฉลาก

  • ถัดไป สร้างสองปุ่มและตั้งค่า "borderwidth=0" ในปุ่มเดียว มันจะลบขอบรอบปุ่ม

  • สุดท้าย เรียกใช้ mainloop ของหน้าต่างแอปพลิเคชัน

ตัวอย่าง

# Import the required libraries
from tkinter import *

#Create an instance of tkinter frame
root=Tk()

# Set the geometry of frame
root.geometry("700x350")

# Create a canvas widget
canvas= Canvas(root, bd=2, highlightthickness=2)
canvas.pack(side=TOP, padx=10, pady=10)

# Create an Entry widget
text=Entry(canvas, width=50)
text.insert(0, "Widget with border")
text.config(borderwidth=5)
text.pack(side=TOP, padx=10, pady=10)

# Create Entry widget without border
text=Entry(canvas, width=50)
text.insert(0, "Widget without border")
text.pack(side=TOP, padx=10, pady=10)

label1 = Label(canvas, text="Label with border", borderwidth=2, relief='solid', font="Calibri, 14")
label1.pack(side=BOTTOM, padx=10, pady=10)

label2 = Label(canvas, text="Label without border", borderwidth=0, font="Calibri, 14")
label2.pack(side=BOTTOM, padx=10, pady=10)

button1 = Button(root, text="Standard Button")
button1.pack(side=TOP, padx=10, pady=10)

button2 = Button(root, text="Button without Border", borderwidth=0)
button2.pack(side=TOP, padx=10, pady=10)

root.mainloop()

ผลลัพธ์

เมื่อดำเนินการ มันจะสร้างผลลัพธ์ต่อไปนี้ -

จะกำจัดขอบวิดเจ็ตใน Tkinter ได้อย่างไร?

สังเกตว่าวิดเจ็ต Canvas มีเส้นขอบ หากคุณตั้งค่าแอตทริบิวต์ "highlightthickness=0" ใน Canvas จะไม่แสดงเส้นขอบรอบๆ อีกต่อไป

ในทำนองเดียวกัน เรามีปุ่มสองปุ่ม ปุ่มหนึ่งมีขอบและปุ่มที่สองไม่มีขอบ หากต้องการลบเส้นขอบใน ปุ่ม วิดเจ็ต เราได้ใช้พารามิเตอร์ "borderwidth=0" .