Tôi có danh sách độ dài thay đổi và muốn tạo hộp kiểm (với python TKinter) cho mỗi mục nhập trong danh sách (mỗi mục tương ứng với máy nên bật hoặc tắt bằng hộp kiểm -> thay đổi giá trị trong từ điển).Làm cách nào để tạo nhiều hộp kiểm từ danh sách trong vòng lặp for trong python tkinter
print enable
{'ID1050': 0, 'ID1106': 0, 'ID1104': 0, 'ID1102': 0}
(ví dụ, có thể là bất kỳ chiều dài)
nay là mã có liên quan:
for machine in enable:
l = Checkbutton(self.root, text=machine, variable=enable[machine])
l.pack()
self.root.mainloop()
Mã này tạo ra 4 hộp kiểm nhưng tất cả chúng đều hoặc đánh dấu hoặc unticked với nhau và các giá trị trong enable
dict không thay đổi. Giải quyết thế nào? (Tôi nghĩ rằng l
không hoạt động, nhưng làm cách nào để tạo biến này?)
Cảm ơn bạn! Các hộp kiểm hoạt động ngay bây giờ, chỉ một câu hỏi: làm thế nào tôi có thể đọc các biến bên ngoài lớp tkinter (tôi đã thiết lập nó như sau: http://stackoverflow.com/a/1835036/1102225). Tôi đã thử mọi thứ. Khi tôi sử dụng 'print enable [machine] .get() AttributeError: đối tượng 'int' không có thuộc tính 'get'' Vì vậy, tôi đã thử: ' print app.enable [machine] .get() AttributeError:' MyTkApp 'đối tượng không có thuộc tính' enable'' (ứng dụng là đối tượng của lớp tkinter được gọi là MyTkApp) Và khi tôi làm điều đó mà không có được: 'print enable [machine] PY_VAR0' – Sebastian
Oh tôi đã tự mình! Tôi bao gồm một hàm trong lớp tkinter để trả về giá trị: 'def read (self, machine): \t return enable [machine] .get() ' sau đó bên ngoài lớp bạn có thể gọi ví dụ: ' print app.read (1050) ' – Sebastian