Python新手在这里,更新的仍然是Pmw:
我为显示Pmw MessageDialog框定义了以下方法,它按预期工作,结果值返回并发布在edit1中,这是一个Tkinter.Text小部件; 'self'这里是一个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()的调用不允许我控制messageBox的位置。
如果我将该电话改为:
result = dialog.activate(geometry = first+50+20)
然后将messageBox小部件放置在指定的坐标处,但这有两个副作用:
1)messageBox小部件现在有主窗口的按钮(关闭,最小化,最大化)而不是对话框(只是关闭'X'按钮)
2)结果值永远不会发布到edit1。
问题:如何在保持对话框按钮/边框并将值发布到文本(edit1)小部件的同时控制messageBox的位置。
TIA
答案 0 :(得分:0)
答案是几何选项需要在引号中,我没有看到正确的结果,因为不正确的几何说明符抛出异常。这段代码:
result = dialog.activate(geometry = "first+50+20")
工作正常。