2010-03-16 11 views
10

मैं wxPython की हाइपरट्रीलिस्ट का उपयोग कर रहा हूं और मैं कॉलम चौड़ाई को उसमें सबसे बड़ी स्ट्रिंग की लंबाई के बराबर बराबर सेट करना चाहता हूं।पिक्सेल में स्ट्रिंग की चौड़ाई कैसे प्राप्त करें?

इसे पूरा करने के लिए, मैं एक पायथन स्ट्रिंग आकार को पिक्सेल में परिवर्तित करना चाहता हूं।

उदाहरण के लिए: हम

str = "python" 
len(str) = 6 

जैसी एक स्ट्रिंग है, तो मैं कैसे पिक्सल में ऊपर स्ट्रिंग लंबाई/आकार परिवर्तित कर सकते हैं?

क्या कोई और तरीका है?

+0

पिक्सेल में आकार फ़ॉन्ट आप स्ट्रिंग प्रदर्शित करने के लिए प्रयोग कर रहे हैं पर निर्भर करेगा और ग्राफिक्स टूलकिट आप कर रहे हैं होगा फ़ॉन्ट प्रस्तुत करने के लिए उपयोग कर रहे हैं। इससे पहले कि हम आपकी मदद कर सकें, आपको हमें अधिक जानकारी देना होगा। –

+1

मैं wxPython हाइपरट्रीलिस्ट का उपयोग कर रहा हूं और मैं कॉलम चौड़ाई को कॉलम मान की लंबाई के बराबर बराबर सेट करना चाहता हूं। असल में, मैं स्तंभ में सबसे बड़े स्ट्रिंग मान के आकार के बराबर कॉलम आकार समायोजित करना चाहता हूं। – MA1

उत्तर

13

आप ऐसा करने के लिए somethinglike (अधिक जानकारी के लिए documentation of wxWidgets देख)

f = window.GetFont() 
dc = wx.WindowDC(window) 
dc.SetFont(f) 
width, height = dc.GetTextExtent("Text to measure") 
+0

चौड़ाई पाने के लिए सही फ़ॉन्ट और GetTextExtent प्राप्त करने के लिए GetColumnFont का उपयोग करें –

10

यह इस बात पर निर्भर करता है कि आप टेक्स्ट को कैसे प्रिंट कर रहे हैं।

आपको PIL ImageDraw से रुचि हो सकती है जिसमें textsize विधि है। http://effbot.org/imagingbook/imagedraw.htm

अद्यतन: यह मूल प्रश्न का उत्तर दे रहा था। प्रश्न अपडेट के बाद यह थोड़ा ऑफ-विषय दिख सकता है।

+1

कृपया डाउनवोट समझाएं। एफवाईआई, मूल जवाब यह नहीं कहता कि यह WxPython के लिए था। क्या मुझे यह जवाब हटाना चाहिए? – luc

+0

+1 क्षमा करें, मूल अनिवार्य प्रश्न नहीं देखा, तो आप जवाब सार्थक था। –

+0

एचएम उत्तर को संपादित करने तक ऊपर नहीं जा सकता है :( –

संबंधित मुद्दे