如何解决控制Pmw.MessageDialog和其他类似的小部件的位置
| 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
解决方法
答案是几何选项必须用引号引起来,我没有看到正确的结果,因为不正确的几何说明符引发了异常。这段代码:
result = dialog.activate(geometry = \"first+50+20\")
工作良好。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。