我正在使用wxPython的HyperTreeList,我想將列寬設置爲與其中最大字符串的長度完全相等。如何以像素爲單位獲取字符串的寬度?
爲了實現這一點,我想將python字符串大小轉換爲像素。
例如:如果我們有像
str = "python"
len(str) = 6
字符串我怎麼能轉換上面的字符串長度/尺寸爲像素?
還有別的辦法嗎?
我正在使用wxPython的HyperTreeList,我想將列寬設置爲與其中最大字符串的長度完全相等。如何以像素爲單位獲取字符串的寬度?
爲了實現這一點,我想將python字符串大小轉換爲像素。
例如:如果我們有像
str = "python"
len(str) = 6
字符串我怎麼能轉換上面的字符串長度/尺寸爲像素?
還有別的辦法嗎?
你必須做somethinglike(見documentation of wxWidgets更多信息)
f = window.GetFont()
dc = wx.WindowDC(window)
dc.SetFont(f)
width, height = dc.GetTextExtent("Text to measure")
使用GetColumnFont獲取正確的字體和GetTextExtent獲取寬度 – 2010-03-19 11:32:14
這取決於您如何打印文本。
您可能也有興趣PIL ImageDraw
其中有textsize
方法。請參閱http://effbot.org/imagingbook/imagedraw.htm
更新:這回答了原始問題。在問題更新後,它可能看起來有點偏離主題。
請解釋downvote。僅供參考,原始答案並沒有說它是用於WxPython。我應該刪除這個答案嗎? – luc 2010-03-19 13:13:09
+1抱歉,沒有看到原始未經編輯的問題,你的回答是有意義的。 – 2010-03-20 02:59:27
嗯不能upvote,直到你編輯的答案:( – 2010-03-20 02:59:53
像素大小將取決於你所使用來顯示字符串的字體和圖形工具,你用於呈現字體。在我們能夠幫助您之前,您將不得不提供更多信息。 – 2010-03-16 14:41:55
我正在使用wxPython HyperTreeList,我想設置列的寬度完全等於列值的長度。 實際上,我想調整列大小等於列中最大字符串值的大小。 – MA1 2010-03-16 14:48:03