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

Làm thế nào để loại bỏ biên giới tiện ích con trong Tkinter?

Tkinter đi kèm với các loại widget khác nhau như Button, Entry, Frame, Label, Radiobutton, Scrollbar, v.v. Widget là các phần tử giao diện người dùng đồ họa tiêu chuẩn (GUI) hiển thị thông tin hoặc giúp người dùng tương tác với hệ thống.

Trong ví dụ này, chúng ta sẽ thấy cách loại bỏ đường viền khỏi canvas, các trường Entry, nhãn và nút.

Các bước -

  • Nhập các thư viện cần thiết và tạo một phiên bản của khung tkinter.

  • Đặt kích thước của khung bằng cách sử dụng root.geometry phương pháp.

  • Tiếp theo, tạo Canvas và đặt chiều rộng đường viền của canvas bằng "bd" thuộc tính. Sau đó, sử dụng "highlightthickness" để xác định xem bạn có muốn hiển thị đường viền canvas hay không. Đặt "highlightthickness =0" trong trường hợp bạn muốn loại bỏ viền canvas.

  • Xác định thêm hai hàm do người dùng xác định, start () dừng () , để kiểm soát vô_lục_loop . Xác định một biến toàn cục "điều kiện" . Bên trong start () , đặt điều kiện =True và bên trong stop () , đặt điều kiện =Sai .

  • Tiếp theo, tạo hai trường Entry bên trong Canvas. Sử dụng độ rộng biên giới để đặt đường viền của một trường Mục nhập.

  • Tương tự, hãy tạo hai Nhãn và sử dụng độ rộng đường viền thuộc tính Relay ='solid' để hiển thị đường viền xung quanh nhãn.

  • Tiếp theo, tạo hai Nút và đặt "borderwidth =0" trong một nút. Nó sẽ loại bỏ đường viền xung quanh nút.

  • Cuối cùng, chạy mainloop của cửa sổ ứng dụng.

Ví dụ

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

Đầu ra

Khi thực thi, nó sẽ tạo ra kết quả sau -

Làm thế nào để loại bỏ biên giới tiện ích con trong Tkinter?

Quan sát widget Canvas có đường viền. Nếu bạn đặt thuộc tính "highlightthickness =0" trong Canvas, sau đó nó sẽ không hiển thị đường viền xung quanh nữa.

Tương tự, chúng ta có hai nút, một nút có viền và nút thứ hai không có viền. Để xóa đường viền trong nút tiện ích con, chúng tôi đã sử dụng tham số "borderwidth =0" .