2012-01-31 15 views

उत्तर

5

मैं क्यूटी के सूत्रों को देखा और पता चला कि यह कस्टम बटन लेआउट बनाने और सूची में बटन वापस ommiting द्वारा बटन वापस छिपाने के लिए संभव है किया है:

QList<QWizard::WizardButton> button_layout; 
    button_layout << QWizard::HelpButton << QWizard::Stretch << 
        QWizard::NextButton << QWizard::CustomButton1 << 
        QWizard::CancelButton; 
    this->setButtonLayout(button_layout); 

मुझे आशा है कि यह किसी के लिए कुछ समय की बचत होगी ।

पीएस

AFAIU QTimer का उपयोग कर इसे QWizard स्रोत कोड को संशोधित करने की जरूरत है से बचने के लिए। easies रास्ता (एक आभासी समारोह आभासी शून्य buttonsUpdated जोड़ने के लिए) हो जाएगा; और इसे QWizard के अंत से कॉल करें: शून्य QWizardPrivate :: _ q_updateButtonStates() फिर इस बटन को अपने QWizard sublass में अद्यतन करें() वापस बैक बटन अक्षम करें।

+0

आप QWizrad :: बटन (WizardButton जो) const' के साथ किसी भी समय QWizard :: बैकबटन ले सकते हैं और इसे किसी भी समय –

+2

पर छुपा/अक्षम कर सकते हैं? मैंने इसे 4.7.4 पर चेक किया और यह इतना आसान काम नहीं किया – Dmitriy

4

QWizard::onCurrentIdChanged(int) 

में

QWizard::button(QWizard::BackButton).hide() 

कॉलिंग मेरे लिए काम किया (PyQt4 में)।

यह प्रभावी ढंग से प्रत्येक विज़ार्ड पृष्ठ पर बैक बटन को छुपाता है, लेकिन यह वांछित प्रभाव प्राप्त करता है।

0

एक वैकल्पिक (शायद अधिक ढांचा उन्मुख) तरीका QWizardPage सेट करना होगा, जो उस पेज से पहले आता है जिसे आप बैक बटन अक्षम करना चाहते हैं, एक प्रतिबद्ध पृष्ठ बनने के लिए। QWizardPage पर बस this.setCommitPage(true) पर कॉल करें और अगले पृष्ठ पर इसका बैक बटन सक्षम नहीं होगा।

QWizardPage documentation

शून्य QWizardPage :: setCommitPage से

(bool commitPage) सेट करता है, तो commitPage सच है एक पेज के लिए प्रतिबद्ध है कि यह पृष्ठ; अन्यथा, इसे सामान्य पृष्ठ के रूप में सेट करता है। एक प्रतिबद्ध पृष्ठ एक पृष्ठ है कि एक क्रिया है जो वापस या रद्द करें क्लिक करके पूर्ववत नहीं किया जा सकता है का प्रतिनिधित्व करता है। एक प्रतिबद्धता बटन को प्रतिबद्ध पृष्ठ पर अगला बटन बदल देता है। इस बटन को क्लिक बस QWizard :: अगले (कॉल) पर क्लिक अगला करता है जैसे। एक पृष्ठ एक पृष्ठ के लिए प्रतिबद्ध इसके पीछे बटन को अक्षम कर दिया से सीधे प्रवेश किया। यह भी देखें CommitPage()।

यदि आप सभी बैक बटन अक्षम होने के लिए चाहते हैं, तो आप इसे प्रत्येक पृष्ठ पर कॉल कर सकते हैं।

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