ここではPythonの初心者ですが、Pmwにはまだ新しいです:
Pmw MessageDialog ボックスを表示するために次のメソッドを定義しました。これは期待どおりに機能し、結果の値が返され、Tkinter.Text ウィジェットである edit1 に投稿されます。ここでの「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() を呼び出しても、メッセージ ボックスの場所を制御できないことです。
その呼び出しを次のように変更すると:
result = dialog.activate(geometry = first+50+20)
次に、messageBox ウィジェットが指定された座標に配置されますが、これには 2 つの副作用があります。
1) messageBox ウィジェットに、ダイアログ ボックス (閉じる 'X' ボタンのみ) ではなく、メイン ウィンドウのボタン (閉じる、最小化、最大化) が追加されました。
2) 結果値が edit1 にポストされることはありません。
質問:ダイアログ ボックスのボタン/境界線を維持し、テキスト (edit1) ウィジェットに投稿された値を取得しながら、メッセージ ボックスの位置を制御するにはどうすればよいですか。
ティア