Tôi muốn thêm 10 nút vào Tkinter, có tên là Một đến Mười. Về cơ bản, tôi chỉ sử dụng phương pháp bạo lực, thêm mỗi nút như tôi đã đi, trong hàm init của lớp ứng dụng của tôi. Nó hoạt động, nhưng tôi muốn giảm thiểu mã được sử dụng, để có hiệu quả hơn, chẳng hạn như sử dụng cấu trúc dữ liệu để giữ tất cả các nút.Làm cách nào để thêm nhiều Nút vào khung tkinter một cách hiệu quả?
Tôi đã nghĩ đến việc sử dụng buttonBox
để giữ tất cả các nút trong, nhưng tôi không chắc liệu mình có thể thao tác vị trí qua grid()
để đặt các nút theo cách mình muốn hay không.
self.one = Button(frame, text="One", command=self.callback)
self.one.grid(sticky=W+E+N+S, padx=1, pady=1)
self.two = Button(frame, text="Two", command=self.callback)
self.two.grid(sticky=W+E+N+S, row=0, column=1, padx=1, pady=1)
self.three = Button(frame, text="Three", command=self.callback)
self.three.grid(sticky=W+E+N+S, row=0, column=2, padx=1, pady=1)
# ...
self.ten = Button(frame, text="Ten", command=self.callback)
self.ten.grid(sticky=W+E+N+S, row=1, column=4, padx=1, pady=1)
Bất kỳ ai cũng có thể chỉ cho tôi cách làm hiệu quả hơn, chẳng hạn như cấu trúc dữ liệu?
Cảm ơn bạn! Điều này làm việc, nhưng tôi đã phải thay đổi nó thành "self.button.append()" để nó không gây ra một IndexError. Và dòng dưới cùng tôi đã thay đổi thành self.button [i] .grid(), thay vì self.one.grid(). Nó hoạt động hoàn hảo :) – thatbennyguy
@thatbennyguy: Ack! Cảm ơn bạn đã sửa! – unutbu
Chỉ có một điều ... làm thế nào bạn sẽ nhận được các nút để gọi lại các lệnh khác nhau? – thatbennyguy