小编TPD*_*are的帖子

在wxPython中查找文本大小的正确方法

我有一个我在wxPython中开发的应用程序.部分应用程序在网格中创建大量TextCtrls,以便为一个任意大的人员列表输入一周中每一天的四个字母代码.

我已经设法使它工作,但我必须做一些kludgy.具体来说,我还没有找到一个很好的方法来计算出一些文本的大小(以像素为单位),因此我必须猜测TextCtrls的大小以便恰好适合最大的(4个字母)代码.我担心的是,如果要更改文本的大小,或者将应用程序移植到MSW以外的其他内容,那么我的布局可能会中断.

我找到的解决方案是创建一个StaticText对象,用4个大字母填充它,得到它的大小,然后是.Destroy()它.这可行,但它看起来真的是一个笨重的解决方案.有没有人有更直接的方法来确定TextCtrl中任意文本字符串的大小?我查看了文档并且找不到任何内容,而且我没有看到任何正如我正在尝试做的那样的例子.

下面是一个小代码示例(显示测试方法):

    # This creates and then immediately destroys a static text control
    # in order to learn how big four characters are in the current font.
    testst = wx.StaticText(self, id = wx.ID_ANY, label = "XXXX")
    self.fourlettertextsize = testst.GetClientSize() + (4,4)
    testst.Destroy()
Run Code Online (Sandbox Code Playgroud)

(+(4,4)部分是在控件中添加一点空间以容纳光标和TextCtrl的客户区域中的一个小边框;这是我不想直接做的另一件事.)

python size wxpython wxtextctrl

4
推荐指数
2
解决办法
3917
查看次数

标签 统计

python ×1

size ×1

wxpython ×1

wxtextctrl ×1