python(tkinter) 초보자입니다.
너무 원초적인 질문일지 모르지만, 용기내어 질문 드립니다.
하고 싶은것
1. Main Window에서 Button을 누르면 Pop Up이 동작
2. PopUp(class)에서 Label을 생성
단. Label 생성 시 제가 만든 함수를 이용하여 만들고 싶습니다.
구현원하는 것이 아주 간단하지만 구조는 아래와 같이 하고 싶습니다.
main.py
MainFunction.py
Sequence.py
Popup(Sequence)인 창에 Label을 추가하고 싶습니다.
헌데 PopUp이 아닌 Main Windows에 Label이 추가됩니다.
어떻게 해야하나요?
사실 make_element나 make_sequence_element나 동일 함수인데 이것 저것 하다가 질문드립니다.
그냥 Sequence Class에 Label로 추가하면되나, 제가 만든 함수(make_element나 make_sequence_element)를 쓰고 싶습니다.
from tkinter import messagebox
window=tkinter.Tk()
window.title("TEST PROG")
window.geometry("200x100+100+100")
window.resizable(False, False)
def makePopUP(popUpTitle, popUpText, popUpType):
if popUpType == 'info':
messagebox.showinfo(title=popUpTitle, message=popUpText)
elif popUpType == 'err':
messagebox.showerror(title=popUpTitle, message=popUpText)
else:
messagebox.showinfo(title=popUpTitle, message=popUpText)
button = tkinter.Button(window,text='info', overrelief="solid", width=15, command=lambda : makePopUP(popUpTitle='원하는 타이틀', popUpText='원하는 텍스트', popUpType='info'), repeatdelay=1000, repeatinterval=100)
button.pack()
button2 = tkinter.Button(window,text='err', overrelief="solid", width=15, command=lambda : makePopUP(popUpTitle='원하는 타이틀', popUpText='원하는 텍스트', popUpType='err'), repeatdelay=1000, repeatinterval=100)
button2.pack()
window.mainloop()
대충 버튼 두개 에러팝업 혹은 INFO 팝업 생성되는 단일 코드입니다.
버튼 생성시 함수 연결하는 부분을 다시 확인해 보시면 이해되실듯 합니다.
팝업 생성은 main.py에서 sequence_btn의 handler로 create_sequence 함수로 생성하고 있습니다.
아래 Code도 좋은 방법입니다만, 제가 하고 싶은 방향은 이렇습니다.
main
1) class로 Button이 있는 Main Window 생성
2) Button Event는 Pop Up 생성
Main Function
1) Label 생성 함수
Sequence
1) Main에서 button event로 생성할 Pop Up Class화
2) Pop Up에 Label를 추가
3) 이게 제일 하고 싶은건데요. Main Function의 함수를 Call하여 Pop Up에 Label 생성
마지막 Sequence의 3)을 실행 시 Pop Up에 Label이 생성되는 것이 아닌 Main Window에 Label이 생성됩니다.
전체 코드가 어케되있는지 모르겠지만,
"make_swquence_element"함수 혹은 "make_element"함수에서
라벨 생성하는 부분에 Label(f, *args, **kwargs)를
Label(self, *args, **kwargs)로 변경해보세요.