这里是 Python 新手,对 Pmw 来说还是比较新的:
我定义了以下用于显示 Pmw 消息对话框的方法,它按预期工作,结果值返回并发布在 edit1 中,它是一个 Tkinter.Text 小部件;这里的“自我”是一个 Tkinter.Frame。(运行 Win7-32 和 Python v2.7.2):
def _showMessageBar(self):
dialog = Pmw.MessageDialog(self, title = 'DBox',defaultbutton = 0,buttons('OK',Cancel'), message_text = 'DBox')
dialog.iconname(dialog['title'])
try:
result = dialog.activate()
finally:
dialog.deactivate()
self.edit1.insert(END, result+ "\n")
问题是,对 dialog.activate() 的调用不允许我控制消息框的位置。
如果我将该调用更改为:
result = dialog.activate(geometry = first+50+20)
然后将 messageBox 小部件放置在指定的坐标处,但这有两个副作用:
1) messageBox 小部件现在具有主窗口的按钮(关闭、最小化、最大化)而不是对话框(只是关闭“X”按钮)
2) 结果值永远不会发布到edit1。
问题:我如何控制 messageBox 的位置,同时保持对话框按钮/边框并获取发布到 Text (edit1) 小部件的值。
TIA