क्यूटी में मेरे पास एक समग्र विजेट है जिसमें QBoxLayouts के अंदर व्यवस्थित कई QLabels शामिल हैं। जब विजेट का आकार बदलता है, तो मैं लेबल टेक्स्ट को लेबल क्षेत्र को भरने के लिए स्केल करना चाहता हूं और मैंने resizeEvent में टेक्स्ट का आकार बदलना लागू कर दिया है।क्यूटी में स्वचालित रूप से लेबल टेक्स्ट का आकार बदलना - अजीब व्यवहार
यह काम करता है लेकिन कुछ प्रकार के फीडबैक लूप होने लगते हैं। संयुक्त विजेट को किसी अन्य विजेट के साथ QBoxLayout के अंदर एक मुख्य विंडो में रखा गया है। जब मुख्य विंडो छोटी हो जाती है, तो समग्र विजेट प्रारंभ में अपना आकार बनाए रखता है और फिर कई चरणों (लगभग 10-15) में सही आकार की ओर आकार बदलता है। यदि टेक्स्ट ऊंचाई लेबल की ऊंचाई के लगभग 0.8 गुना से अधिक सेट हो जाती है तो पाठ का आकार बदलने पर और विजेट प्रत्येक चरण के साथ बड़ा हो जाता है जब तक कि ऐप क्रैश न हो जाए।
क्या यह इस प्रभाव को प्राप्त करने के लिए सही दृष्टिकोण है? यदि हां, तो आकार बदलने के साथ समस्या क्या हो सकती है?
नीचे resizeEvent कोड है।
def resizeEvent(self, evt):
print("resizeEvent", evt.size().width(), evt.size().height())
QFrame.resizeEvent(self, evt)
dataLabels = self.dataPanels.values()
for label in dataLabels:
font = label.font()
h = label.height()
h2 = h * 0.8
font.setPixelSize(h2)
label.setFont(font)
(PyQt4 4.8, क्यूटी 4.7.4, 7 विन & OSX 10.6 का प्रयोग करके)
आकार नीति सेट करने से समस्या ठीक हो गई, धन्यवाद। – glennr