繁体   English   中英

Python 2.7 / Windows:如何控制Tkinter常用对话框的位置?

[英]Python 2.7/Windows: How to control position of Tkinter common dialogs?

Windows下的Python 2.7:我们如何控制Tkinter常用对话框的位置?

这是我们发现的:

  • 某些常见对话框始终相对于其父窗口打开
  • 某些常见对话框始终以用户桌面为中心打开
  • 所有常见对话框似乎都忽略了可选的parent =参数

问题:

  • 我们如何强制对话框相对于其父窗口打开?
  • 我们如何强制以用户桌面为中心打开对话框?

背景:

import tkColorChooser as colorchooser
import tkFileDialog as filedialog
import tkMessageBox as messagebox

; # always open up relative to parent windows
fileOpen   = filedialog.askopenfilename()
fileOpens  = filedialog.askopenfilenames()
fileSaveAs = filedialog.asksaveasfilename()
color      = colorchooser.askcolor()

; # always open up centered on desktop
folderOpen = filedialog.askdirectory()
messagebox.askquestion()

谢谢你,马尔科姆

对于Windows消息框,您不能。 它出现在屏幕的中央,就是这样。 但是,文件选择对话框和颜色选择器是系统对话框,它们已经被赋予了Tk包装器,以便用户可以在此平台上查看库存对话框。 如果设置-parent选项,则会将其传递到包装的窗口,并将其置于指定的顶层上方。

在Tk:

toplevel .t
tk_chooseColor -parent .t

你如何把它变成Tkinter我留给有Python经验的人。

至于这些中心,CHOOSECOLOR结构的hwndOwner成员总是被设置为你的一个Tk toplevels的HWND。 要让它在桌面上为父对象,你需要在那里传递NULL而Tk不允许你。 您可以获取unix版本(lib / clrpick.tcl)并显示相反,但在Windows桌面上看起来会很奇怪。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM