如何使wx.TextCtrl居中?

4 投票
2 回答
3559 浏览
提问于 2025-04-16 15:12

我在wx.TextCtrl中居中显示文本时遇到了困难(如下图所示)。——不知为什么,它总是左对齐,而不是居中对齐。

期望的输出示例

有人能告诉我正确的“样式”吗?或者说说我哪里做错了?

import wx

class SimplePanel(wx.Panel):

    def __init__(self, parent, id):
        wx.Panel.__init__(self, parent, id, style=wx.BORDER_SUNKEN)
        myTextCtrl = wx.TextCtrl(self, -1,
                                 style=wx.TE_CENTRE,
                                 size=(100, -1), pos=(10, 10))

if __name__ == '__main__':
    app = wx.App()

    frame = wx.Frame(None, -1, 'Simple Panel') 
    myPanel = SimplePanel(frame, -1)
    frame.Show()

    app.MainLoop()

2 个回答

1

(经过澄清后编辑)

之前在wxPython中出现过一个错误,这个错误导致某些操作系统的TE_CENTRE功能不能正常工作:

http://wxpython-users.1045709.n5.nabble.com/ANN-wxPython-2-8-9-1-td2367679.html

你可以试着更新到最新版本,也许能解决问题。

2

在Windows上这个功能看起来没问题,但我在开发时同时使用了OSX和Windows,发现wx.TE_CENTRE在OSX上似乎不起作用。这个问题早在很多年前就被报告过了,具体可以查看这个链接:http://trac.wxwidgets.org/ticket/10010

撰写回答