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

时间:2011-06-18 07:30:52

标签: python pythonw

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

1 个答案:

答案 0 :(得分:0)

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

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

工作正常。