c++ - Why it is not possible to animate the "maximumWidth" parameter of the QWidget? -


संभव डुप्लिकेट:

एनीमेशन के साथ एक लेआउट में thd विगेट्स आकार बदलने के लिए मैं QWidget अधिकतम Width को सजीव करना चाहता था, लेकिन यह काम नहीं करता है। मैंने निम्नलिखित करने की कोशिश की है:

  QPropertyAnimation * animation1 = नया QPropertyAnimation (m_textEditor2, "maxWidth"); animation1- & gt; setStartValue (0); animation1- & gt; setEndValue (100); animation1- & gt; शुरू ();  

संपादित करें: न्यूनतम Width संपत्ति के लिए एनीमेशन काम करता है, लेकिन अधिकतम Wthth के लिए - नहीं इस प्रकार मैंने अपने बगरेपोर्ट साइट पर एक बग खोला है।

आपकी समस्या यह है कि अधिकतम विथ नहीं है एनीमेशन के लिए इस्तेमाल करने वाली एक बहुत अच्छी संपत्ति, क्योंकि यह सीधे विजेट के वास्तविक आकार में अनुवाद नहीं करता है। आप बेहतर ज्यामिति का उपयोग करते हैं जो बेहतर प्रभाव देता है; उदाहरण के लिए, यह एक QTextEdit :

  वर्ग QtTest: सार्वजनिक QMainWindow {Q_OBJECT सार्वजनिक: QtTest () {m_textEdit = new QTextEdit (this) को एनिमेट करता है; }; संरक्षित: QTextEdit * m_textEdit; वर्चुअल व्हॉइड शोइवेंट (क्यू शोवेइवेंट * इवेंट) {QWidget :: showEvent (घटना); क्यूप्रॉपर्टी एनीमेशन * एनीमेशन = नया क्यूप्रोपेर्टी एनीमेशन (एम_टेक्स्ट एडिट, "ज्यामिति"); animation- & gt; setDuration (10000); एनीमेशन- & gt; सेटस्टार्ट वैल्यू (QRect (0, 0, 100, 30)); एनीमेशन- & gt; सेटएंडवैल्यू (QRect (0, 0, 500, 30)); animation- & gt; शुरू (); }};  

Comments