以字符数设置wxPython TextCtrl的宽度

Eli*_*ght 7 python wxpython

我有一个TextCtrl在我的wxPython程序中,我想将其宽度设置为正好3个字符.但是,手动设置其大小的唯一方法是仅接受像素数.有没有办法指定字符而不是像素?

Mar*_*som 2

请注意,大多数字体都是成比例的,这意味着每个字符可能采用不同的宽度。WWW 和 lll 都是 3 个字符,但它们需要的文本框大小截然不同。有些字体,例如Courier,被设计为固定宽度,不会出现这个问题。不幸的是,您可能无法控制在文本框中选择哪种字体。

如果您仍然想尝试此操作,关键是获取字符的宽度(以像素为单位),将其乘以字符数,然后为字符周围的边框添加一些填充。您可能会发现这是一个很好的起点:

http://docs.wxwidgets.org/stable/wx_wxdc.html#wxdcgetpartialtextextents

或者,正如 litb 所建议的:

http://docs.wxwidgets.org/2.4/wx_wxwindow.html#wxwindowgettextextent