I am using wxPython's HyperTreeList and I want to set the column width exactly equal to length of the largest string in it.
To accomplis开发者_开发知识库h that, I'd like to to convert a python string size into pixels.
For Example: If we have a string like
str = "python"
len(str) = 6
How could I convert the above string length/size into pixels?
Is there another way?
You'll have to do something like (see the documentation of wxWidgets for more info)
f = window.GetFont()
dc = wx.WindowDC(window)
dc.SetFont(f)
width, height = dc.GetTextExtent("Text to measure")
It depends on how you are printing the text.
You may be interested by PIL ImageDraw
which has a textsize
method. See http://effbot.org/imagingbook/imagedraw.htm
Update: This was answering the original question. It may looks a little off-topic after question updates.
This is not my solution, I'm just passing it on as I found it works and most useful as in a program environment it reduces to only 3 lines. Python3.9 mac OS
from tkinter import *
from tkinter import font as W1
FW=Tk() ; FW.withdraw() # a must but don't need a window
Text ='1234567890'
def LENGTH(Text) :
W2 = W1.Font(family='Comicsans' , size = 20)
length = W2.measure(Text)
print(length)
LENGTH(Text)
精彩评论