我想在屏幕中央以固定大小弹出一个视图,其中一些静态文本在水平和垂直方向居中显示。
到目前为止,我有以下代码:
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