2013-04-16 33 views
17

Tôi cần thay đổi trạng thái từ DISABLED thành NORMAL của số Button khi một số sự kiện xảy ra.Làm thế nào để thay đổi trạng thái Nút Tkinter khỏi bị vô hiệu hóa thành bình thường?

Đây là trạng thái hiện tại của nút của tôi, mà hiện đang bị vô hiệu hóa:

self.x = Button(self.dialog, text="Download", 
       state=DISABLED, command=self.download).pack(side=LEFT) 

self.x(state=NORMAL) # this does not seem to work 

thể anyonne giúp tôi làm thế nào để làm điều đó?

Trả lời

34

Bạn chỉ cần phải thiết lập các state của nút của bạn self.x-normal:

self.x['state'] = 'normal' 

hoặc

self.x.config(state="normal") 

Mã này sẽ đi vào gọi lại cho sự kiện này sẽ gây ra các nút để được kích hoạt.


Ngoài ra, mã đúng nên là:

self.x = Button(self.dialog, text="Download", state=DISABLED, command=self.download) 
self.x.pack(side=LEFT) 

Phương pháp pack trong Button(...).pack() lợi nhuận None, và bạn đang gán nó vào self.x. Bạn thực sự muốn chỉ định giá trị trả về là Button(...) đến self.x và sau đó, trong dòng sau, hãy sử dụng self.x.pack().

+0

Cũng cần nói thêm rằng mã này sẽ đi vào gọi lại cho sự kiện đó sẽ gây ra các nút để được kích hoạt. –

+0

Tôi đã cố gắng có lỗi: self.x ['state'] = 'enabled' : 'NoneType' đối tượng không hỗ trợ gán mục – scandalous

+0

Bạn lạm dụng một số chức năng. Hãy xem bản cập nhật của tôi. – Sheng

6

Tôi nghĩ rằng một cách nhanh chóng để thay đổi tùy chọn của tiện ích con là sử dụng phương thức configure.

Trong trường hợp của bạn, nó sẽ trông như thế này:

self.x.configure(state=NORMAL) 
Các vấn đề liên quan