내 질문을 단순화하고 질문을 명확하게 전달하기 위해 이전 질문을 삭제했습니다. 그 안에 여러 클래스가있는 프로젝트가 있는데 버튼을 클릭하면 캘린더를 새 창에 표시하고 싶습니다. 현재 내 전체 스크립트 내에서 사소한 변경 내용이있는 this 캘린더 스크립트를 사용하고 있습니다. 이 같은 일정 스크립트의 첫 번째 부분에서 최상위 레벨에 프레임을 변경 :Tkinter, 버튼 클릭시 Toplevel 창에 캘린더 표시
class Calendar(tk.Toplevel):
def __init__(self, parent, **kw):
Toplevel.__init__(self, parent, **kw)
지금이 내 스크립트의 나머지와 함께 최상위 레벨 창에서 달력을 만들 않지만 그것은 바로 프로그램이 그대로을한다 시작되었습니다. 나중에 사용자가 호출 할 때 표시하려고합니다.
예 :
def show_Calendar(self):
'''shows calendar'''
toplevel = Toplevel()
toplevel.Calendar.place(x=0, y=0)
버튼은 창을 만들 않지만 그 안에 아무것도 :이 부를 것이다
class Application(tk.Tk): # tk.Tk creates main window
def __init__(self):
tk.Tk.__init__(self)
self.title("T")
self.geometry('550x320')#x,y
self.create_options()
self.calendar = Calendar(self)
def create_options(self):
self.widgets = tk.Frame(self)
tk.Button(self,
text = "...", command=self.show_Calendar
).place(x=525, y=130)
. 이 캘린더를 버튼을 클릭 할 때 나타나는 창에만 표시되도록하는 가장 좋은 방법은 무엇입니까?
'Calendar' 인스턴스에'place'를 호출하는 이유는'Toplevel'입니다. 실제로'place'를 호출하면'Toplevel'의 인스턴스에'place' 함수가 없으므로 오류가 발생합니다. –
알겠습니다. 나는 선을 제거했다. – Hobbes
@Hobbes 대단히 감사합니다! 나는 길을 찾으려고 지난 며칠 동안 웹을 수색 해왔다. 도움을 감사하십시오! – TheHoff