>

내 프로그램의 경우 사용자가 file 를 선택하기를 원합니다 , 나는 tkinter.filedialog 를 사용하고 있습니다.  이를 위해 라이브러리. 그러나 askopenfilename  대화창이 열리고 TopLevel 메인 Tk() 뒤에 창이 사라집니다  창문.

How would I stop this from happening?

지금까지 작성한 코드는 다음과 같습니다.

from tkinter import *
from tkinter.filedialog import askopenfilename

class MainWin(Tk):
    def __init__(self):
        super(MainWin, self).__init__()
        self.update()
        pu = PopUp(self)
        self.configure(width=500, height=300)

class PopUp(Toplevel):
    def __init__(self, master):
        super(PopUp, self).__init__(master)
        def entry_set(entry, text):
            entry.delete(0, 'end')
            entry.insert(END, text)
        item_file = StringVar()
        item_entry = Entry(self, textvariable=item_file)
        item_entry.place(x=80, y=60, height=20, width=300)
        item_label = Label(self, text="item file: ", bg="gray74", relief="groove")
        item_label.place(x=20, y=60, height=20, width=60)
        item_button = Button(self, text="\uD83D\uDCC2", relief="groove",
                             command=lambda: entry_set(item_entry, askopenfilename()))
        item_button.place(x=380, y=60, height=20, width=20)
        self.configure(width=460, height=180)

if __name__ == '__main__':
    win = MainWin()
    win.mainloop()

Edit:

I have realised that using the .grab_set()  방법이 작동하고    TopLevel()  창은 Tk() 위에 다시 나타납니다.  파일을 선택한 후

그러나 이것은 여전히 ​​ Tk() 뒤에서 창이 사라진다는 것을 의미합니다.  파일을 선택하는 동안 창은 기능적인 문제가 아니라 시각적 인 문제 일지라도 여전히 해결책을 찾고 싶습니다.

  • 이전 하스켈 타입 스크립트 맵 함수
  • 다음 android - java hashmap 오류 - javalangclasscastexception : javalanginteger를 javalangstring으로 캐스트 할 수 없습니다