Tôi không chắc rằng tôi hiểu câu hỏi của bạn, vì với bố cục
label_object.grid[row, col]1, bạn đang đặt 'đồng xu' ở một vị trí đã định theo chương trình, vì vậy bạn 'biết' nó ở đâu, do đó bạn không cần phải 'tìm' nó
Đây là một minh chứng rất đơn giản
# import tkinter module
from tkinter import *
# create the board
board = Tk[]
# create the labels
l0 = Label[board, text = " 0 "]
l1 = Label[board, text = " 1 "]
l2 = Label[board, text = " 2 "]
l3 = Label[board, text = " 3 "]
l4 = Label[board, text = " 4 "]
l5 = Label[board, text = " 5 "]
# create the coin
coin = Label[board, text = "C"]
# grid the labels
l0.grid[row = 0, column = 0]
l1.grid[row = 1, column = 0]
l2.grid[row = 2, column = 0]
l3.grid[row = 3, column = 0]
l4.grid[row = 4, column = 0]
l5.grid[row = 5, column = 0]
position = input["Where do you want the coin placed? "]
# grid the coin
coin.grid[row = position, column = 0]
print["The coin is in row",position]
mainloop[]
Chào mọi người. Trong phần hướng dẫn trước của chúng tôi về Tkinter, chúng tôi đã đề cập đến tiện ích văn bản Tkinter. Bây giờ hãy xem một ví dụ về việc sử dụng trình quản lý Tkinter Grid
Tuy nhiên, bạn có thể có câu hỏi muốn hỏi, đặc biệt là sau khi thấy nhiều người sử dụng trình quản lý
label_object.grid[row, col]0
Tại sao nên sử dụng Trình quản lý lưới Tkinter?
Trong các hướng dẫn trước của chúng tôi, chúng tôi đã sử dụng trình quản lý hình học gói để quản lý hình học của ứng dụng của chúng tôi. Nhưng làm cho nó hoạt động trơn tru với nhiều đối tượng là một nhiệm vụ khó khăn
Do đó, Tkinter đã giới thiệu các trình quản lý đóng gói khác để giúp cuộc sống của chúng tôi dễ dàng hơn một chút và cũng có thể linh hoạt khi sử dụng những gì
Trình quản lý lưới Tkinter thực sự là dễ học nhất và được khuyên dùng nhất nếu bạn bắt đầu xây dựng các ứng dụng Tkinter
Bây giờ chúng ta đã hiểu điều này, hãy chuyển sang thực sự sử dụng Trình quản lý lưới trong ứng dụng của chúng ta
GHI CHÚ. Không bao giờ sử dụng nhiều trình quản lý đóng gói trong cùng một ứng dụng Tkinter. Điều này sẽ gây ra các lỗi ngoài ý muốn và không được khuyến khích chút nào. Chỉ sử dụng một trình quản lý đóng gói cho một ứng dụng
Sử dụng Trình quản lý hình học lưới Tkinter
Hãy thiết kế bố cục bên dưới bằng Trình quản lý lưới
Bố cục này sẽ có hai tiện ích nhập, có nhãn cho mỗi tiện ích và tiện ích nút bên dưới
Chúng tôi cũng sẽ thêm một hình ảnh ở bên phải và một tiện ích nút cho hình ảnh nữa
Mặc dù loại bố cục này khó quản lý bằng cách sử dụng
label_object.grid[row, col]0, nhưng chúng tôi có thể dễ dàng thực hiện điều này bằng cách sử dụng
label_object.grid[row, col]2
Các bước đủ đơn giản. Chúng tôi chỉ cần tạo tất cả các tiện ích chúng tôi cần và nói với người quản lý
label_object.grid[row, col]2 cách đặt chúng
Trước tiên chúng ta sẽ tạo đối tượng chính của mình
import tkinter as tk master = tk.Tk[]
Bây giờ, trước tiên hãy tạo hai nhãn, vì chúng ta cần chúng ở phía bên trái nhất và yêu cầu người quản lý
label_object.grid[row, col]2 đặt nhãn đó vào số hàng tương ứng
Chúng tôi cần các nhãn ở cột số 0, được lập chỉ mục theo số hàng 0 và 1. Sau khi tạo nhãn, chúng tôi có thể trực tiếp đóng gói chúng bằng cách sử dụng
label_object.grid[row, col]2 bằng cách sử dụng
label_object.grid[row, col]
Vì vậy, chúng ta có thể trực tiếp viết nó như sau
tk.Label[master, text="Label 1"].grid[row=0, column=0] tk.Label[master, text="Label 2"].grid[row=1, column=0]
Bây giờ hãy thêm một mục nhập cho mỗi trong hai nhãn
label_object.grid[row, col]0
Chúng tôi đã tạo các đối tượng mục nhập, nhưng bây giờ, chúng tôi cần yêu cầu
label_object.grid[row, col]2 đặt chúng vào vị trí tương ứng
Chỉ cần gọi
label_object.grid[row, col]7. Điều này tương tự như gói, nhưng nhìn chung, sử dụng mượt mà hơn nhiều
label_object.grid[row, col]3
Sau này, chúng ta có thể thêm vòng lặp chính tkinter của mình bằng cách sử dụng
label_object.grid[row, col]8
Tôi sẽ đăng mã hoàn chỉnh cho đến thời điểm này
label_object.grid[row, col]5
đầu ra
Ổn thỏa. Điều này dường như làm việc như mong đợi. Bây giờ, hãy thêm một nút vào nó, ngay bên dưới
label_object.grid[row, col]6
Bây giờ, chúng tôi có mặt trái của chúng tôi được bảo hiểm
Hãy thêm hình ảnh và một nút khác vào bên phải
Như chúng ta đã thảo luận về các vấn đề hiển thị hình ảnh trong hướng dẫn trước, chúng ta phải giữ một tham chiếu đến đối tượng PhotoImage để tránh thu gom rác tự động
label_object.grid[row, col]7
Cuối cùng, hãy thêm một nút ở dưới cùng
label_object.grid[row, col]8
Bây giờ, tôi sẽ đăng chương trình hoàn chỉnh ở đây
label_object.grid[row, col]9
đầu ra
Cuối cùng, chúng tôi đã hoàn thành bố cục của mình. Và nó đơn giản như việc tạo các vật dụng và yêu cầu
label_object.grid[row, col]2 đặt chúng vào đúng vị trí của chúng
Phần kết luận
Trong hướng dẫn này, chúng ta đã học cách thêm widget vào ứng dụng Tkinter và thiết kế bố cục bằng Tkinter Grid Geometry Manager