Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/309.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 如何更改tkFileDialog.askdirectory的窗口大小?_Python_Tkinter - Fatal编程技术网

Python 如何更改tkFileDialog.askdirectory的窗口大小?

Python 如何更改tkFileDialog.askdirectory的窗口大小?,python,tkinter,Python,Tkinter,我写了一个查找和保存某些文件的简短脚本。我使用以下行选择保存位置: ask_dir = tkFileDialog.askdirectory(initialdir= os.path.dirname(sys.argv[0])) 但是,askdirectory窗口(至少在我的WinXP机器上)太小,无法调整大小。Tkinter似乎没有任何明显的命令来增加窗口大小-。如何解决此问题?在Windows上,似乎使用了FolderBrowserDialog功能,但无法轻松调整大小,尽管可能需要一些努力才能调

我写了一个查找和保存某些文件的简短脚本。我使用以下行选择保存位置:

ask_dir = tkFileDialog.askdirectory(initialdir= os.path.dirname(sys.argv[0]))

但是,askdirectory窗口(至少在我的WinXP机器上)太小,无法调整大小。Tkinter似乎没有任何明显的命令来增加窗口大小-。如何解决此问题?

在Windows上,似乎使用了
FolderBrowserDialog
功能,但无法轻松调整大小,尽管可能需要一些努力才能调整大小

根据一些线索,可以使用该模块将此代码“翻译”为Python

下面是一些调整窗口大小的基本代码,以说明这将如何工作:

import win32gui

win = win32gui.FindWindowEx(None, None, "NULL,"#32770", None)
win32gui.SetWindowPos(win, 0, 500, 500, 900, 900, 0)
您还需要a)获取当前位置,并使用该位置而不是硬编码的值,以及b)调整窗口内所有小部件的大小(请参阅链接文章)

问题:

  • 很难看
  • 我的window类总是设置为
    #32770
    (win7,64位),对我来说它看起来不是很可移植。。。我没有调查这件事的原因
  • askdirectory
    正在阻塞,因此您需要启动一个单独的线程,轮询窗口是否打开,然后调整其大小。不仅如此,用户还可能在调整大小之前看到旧窗口大小的“闪烁”
我理解您的问题,而且“打开文件夹”对话框的可用性很差,但要增加其大小似乎需要付出大量的努力。

用其他东西替换它可能是一种选择,尽管这会打破操作系统的UI惯例,这也是不好的…

我开始怀疑更好(更简单)的解决方案是在这里使用wxPython而不是Tkinter。@bigcat42:Tkinter的主要优点是1)简单,2)速度,3)它可用于默认安装。。。如果您想要一个大而复杂的GUI,它可能不是最佳选择(尽管这是可能的)。请注意,如果wxPython或任何其他工具包不重新实现此对话框,它们将遇到相同的问题。