Python 控制Pmw.MessageDialog(和其他类似小部件)的位置

Python 控制Pmw.MessageDialog(和其他类似小部件)的位置,python,pythonw,Python,Pythonw,这里是Python新手,比Pmw更新: 我为显示Pmw MessageDialog box定义了以下方法,它按预期工作,结果值返回并发布在edit1中,edit1是一个Tkinter.Text小部件;'“self”这是一个Tkinter.Frame。运行Win7-32和Python v2.7.2: def _showMessageBar(self): dialog = Pmw.MessageDialog(self, title = 'DBox',defaultbutton =

这里是Python新手,比Pmw更新:

我为显示Pmw MessageDialog box定义了以下方法,它按预期工作,结果值返回并发布在edit1中,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

问题:如何控制messageBox的位置,同时维护对话框按钮/边框并将值发布到Text edit1小部件


TIA

答案是几何体选项需要在引号中,我没有看到正确的结果,因为不正确的几何体说明符引发了异常。此代码:

result = dialog.activate(geometry = "first+50+20")
很好