0

画面の中央に固定サイズでビューを表示し、静的テキストを水平方向と垂直方向の両方の中央に表示したいと考えています。

これまでのところ、次のコードがあります。

import wx
class DisplayText(wx.Dialog):

    def __init__(self, parent, text="", displayMode=0):

        # Initialize dialog
        wx.Dialog.__init__(self, parent, size=(480,320), style=( wx.DIALOG_EX_METAL | wx.STAY_ON_TOP ) )

        # Center form
        self.Center()
        self.txtField = wx.StaticText(self, label=text, pos=(80,120), size=(320,200), style=wx.ALIGN_CENTRE_HORIZONTAL | wx.ST_NO_AUTORESIZE)

        self.txtField.SetFont(wx.Font(24, wx.DEFAULT, wx.BOLD, 0))      

app = wx.App(False)

c = DisplayText(None, text="Now is the time for all good men to come to the aid of their country.")
c.Show()
app.MainLoop()

目標は実際にテキストを垂直方向の中央に配置することですが、今のところ、フレーム上の静的テキストの位置を明確にしようとしていました.

ほんの一瞬、テキストが配置した位置に表示されますが、すぐにウィンドウの一番上の境界にジャンプし、最大幅まで拡大します。(この動作が発生しているかどうかを確認できるように、幅と位置を意図的に低く設定しました。)

wx.Dialog を使用するか wx.Frame を使用するかは問題ではありません。

ご覧のとおり、NO_AUTORESIZE フラグを定義しましたが、これは尊重されていません。

誰が何が起こっているのか説明できますか?

Python 2.7.5/wxWidgets 2.8.12.1/Mac OS X 10.8.4

4

1 に答える 1