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

Làm thế nào để thay đổi kích thước tự động văn bản nút trong Tkinter?


Giả sử chúng ta đã tạo một nút và một nhãn trong Tkinter Frame. Nhiệm vụ là cho phép văn bản nút tự động thay đổi kích thước thành cửa sổ chính của nó. Chúng tôi có thể tạo nút bằng cách sử dụng tiện ích nút . Tuy nhiên, có một số chức năng khác được sử dụng để tạo động nhãn nút.

Trong ví dụ này, chúng tôi sẽ tạo hai nút với một số nhãn trong đó. Bằng cách sử dụng Phương pháp lưới chẳng hạn như rowconfigure () columnconfigure () , chúng tôi sẽ tự động thay đổi kích thước cửa sổ chính hoặc cửa sổ gốc.

Để làm cho văn bản của nút trở nên động, chúng tôi sẽ sử dụng lệnh bind (,) phương thức này sẽ giúp chúng ta liên kết các hàm và phương thức với nhau. Chúng tôi có thể chuyển một hàm gọi lại thường đề cập đến vị trí mới của tiện ích con và chức năng trợ giúp sửa đổi các thay đổi trong văn bản nút theo kích thước cửa sổ.

Đầu tiên, chúng tôi sẽ thay đổi kích thước của văn bản nút theo chiều rộng và sau đó là chiều cao của nó.

Ví dụ

from tkinter import *

win= Tk()
win.geometry("700x300")

#Dynamically resize the window and its widget

Grid.rowconfigure(win, index=0, weight=1)
Grid.columnconfigure(win, index=0, weight=1)

#Define the function to change the size of the button text
def resize(e):
   #Get the width of the button
   w= e.width/10
   #Dynamically Resize the Button Text
   b.config(font=("Times New Roman",int(w)))
   #Resize the height
   if e.height <=300:
      b.config(font= ("Times New Roman",30))
   elif e.height<100:
      b.config(font= ("Time New Roman", 10))
#Let us Create buttons,

b=Button(win,text="Python")
b.grid(row= 0, column=0, sticky= "nsew")

win.bind('<Configure>', resize)
win.mainloop()

Đầu ra

Chạy đoạn mã trên sẽ tạo ra một nút có văn bản “Python” và nút này có thể được thay đổi kích thước động.

Làm thế nào để thay đổi kích thước tự động văn bản nút trong Tkinter?