Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/333.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何创建一个显示在窗口框架中的文件对话框,而不是作为弹出窗口的文件对话框?_Python_User Interface_Tkinter_Frame_Filedialog - Fatal编程技术网

Python 如何创建一个显示在窗口框架中的文件对话框,而不是作为弹出窗口的文件对话框?

Python 如何创建一个显示在窗口框架中的文件对话框,而不是作为弹出窗口的文件对话框?,python,user-interface,tkinter,frame,filedialog,Python,User Interface,Tkinter,Frame,Filedialog,如何嵌入应用程序打开时出现在左侧框架中的文件对话框,而不是单击按钮浏览并使文件对话框成为弹出窗口 我已经使用Python创建了一个GUI,在窗口的左侧有一个框架,右侧有一个列表框 def browseButtonClicked(): browsePath = filedialog.askopenfilename() . . . # GUI setup root = Tk() mainframe = ttk.F

如何嵌入应用程序打开时出现在左侧框架中的文件对话框,而不是单击按钮浏览并使文件对话框成为弹出窗口

我已经使用Python创建了一个GUI,在窗口的左侧有一个框架,右侧有一个列表框

def browseButtonClicked():

    browsePath = filedialog.askopenfilename()
            .
            .
            .


# GUI setup
root = Tk()

mainframe = ttk.Frame(root)
browseFrame = ttk.Frame(mainframe)

sfPathLB = Listbox(browseFrame, height=12, width=40, selectmode=MULTIPLE)

browseButton = ttk.Button(mainframe, text="Browse", 
command=browseButtonClicked)

browseFrame.grid(column=1, row=2, rowspan=3, padx=3, sticky=(W+E+N+S))

sfPathLB.grid(column=3, row=2, rowspan=3, padx= 3, sticky=(W+E+N+S))
当我在框架内添加filedialog时:

frame.browseFrame = filedialog.askopenfilename()
当我执行程序时,filedialog打开了,但它占据了整个窗口,而不是仅仅出现在框架中

如何创建一个显示在窗口框架中的文件对话框,而不是作为弹出窗口的文件对话框


你不能。对话框由操作系统控制。您不能嵌入它们。

对话框意味着在其自己的窗口中打开了一个小部件类型。是否有其他东西可以提供相同的结果?或者你能推荐一个替代方案吗@ipalekaYou可以尝试在开始时将frame小部件中的所有内容放在不可见的左侧框架内,并在调用时显示它。关于@ipaleka的最后一条评论:有一个frame.tkraise方法允许更改其内容的呈现顺序,允许在需要时隐藏它。这里有一个例子,用它来回答另一个tkinter相关的问题。