2 개의 TkInter 모듈이 있습니다. 하나는 툴바 모듈 (tBar.py)이고 두 번째 모듈은 일반 모듈 (tBarCall.py)입니다.가져온 모듈에서 위젯을 참조합니다.
1) 도구 모음 모듈 (tBar.py) : 도구 모음 프레임을 만들고 단추 위에 저장, 추가, 삭제 등의 단추를 만듭니다.
2) 클라이언트 마스터 모듈 (tBarCall.py) : 툴바 모듈을 가져오고 실행합니다. 그 다음 단계에서 툴바 프레임에 배치 된 일부 버튼을 활성화/비활성화해야합니다. 버튼을 활성화/비활성화하려고 할 때 나타나는 오류를 확인하십시오.
클라이언트 마스터 모듈 내부에서 도구 모음 모듈을 가져올 수 있지만 도구 모음 프레임의 단추를 활성화/비활성화 (참조) 할 수 없습니다.
내가 어떻게이 일을 도와 줄 수 있습니까? 여기
코드이다=== tBar.py ===
import tkinter as tk
def attach_toolbar(rootWindow, action, save_record, first_record):
if action == "I":
fToolbar = tk.Frame(rootWindow, padx = 1, pady = 1, bg="RED")
fToolbar.grid(row=0, column = 0, sticky='w') #pack(anchor="nw",expand=1) #
bSave = tk.Button(fToolbar, text="save", command=save_record) #width=6, height=2, text = "Save\nrecord", font=("Calibri", 8),
bFirst = tk.Button(fToolbar, text="first", command=first_record) #width=6, height=2, text = "First\nrecord", font=("Calibri", 8),
bSave.pack(side="left")
bFirst.pack(side="left")
else:
bFirst.configure(state="disabled")
=== tBarCall.py ===
import tkinter as tk
import tBar
def save_record():
print ("save_record")
def first_record():
print ("first_record")
class startModule:
def __init__(self, rootWindow):
print("__init__")
self.rootWindow = rootWindow
self.rootClient = tk.Toplevel(self.rootWindow)
self.rootClient.geometry('1300x650+1+1')
tBar.attach_toolbar(self.rootClient, "I", save_record, first_record)
#tBar.attach_toolbar(self.rootClient, "D", save_record, first_record) #UnboundLocalError: local variable 'bFirst' referenced before assignment
#bFirst.configure(state="disabled") #NameError: name 'bFirst' is not defined
#self.rootClient.bFirst.configure(state="disabled") #AttributeError: 'Toplevel' object has no attribute 'bFirst'
#self.rootClient.fToolbar.bFirst.configure(state="disabled") #AttributeError: 'Toplevel' object has no attribute 'fToolbar'
if __name__ == "__main__":
root = tk.Tk()
startModule(root)
root.mainloop()