2010-07-09 14 views

उत्तर

24

"अनब्लॉकिंग" से आपका क्या मतलब है? गैर-मोडल? या एक जो निष्पादन को अवरुद्ध नहीं करता है जब तक उपयोगकर्ता ठीक क्लिक नहीं करता है? दोनों ही मामलों में आप QMessageBox तरह सुविधाजनक स्थिर तरीकों का उपयोग कर के मैन्युअल बजाय एक QMessageBox बनाने के लिए() आदि की आवश्यकता होगी :: महत्वपूर्ण

दोनों मामलों में, अपने मित्रों को QDialog::open() और QMessageBox::open(QObject*, const char*) हैं:

void MyWidget::someMethod() { 
    ... 
    QMessageBox* msgBox = new QMessageBox(this); 
    msgBox->setAttribute(Qt::WA_DeleteOnClose); //makes sure the msgbox is deleted automatically when closed 
    msgBox->setStandardButtons(QMessageBox::Ok); 
    msgBox->setWindowTitle(tr("Error")); 
    msgBox->setText(tr("Something happened!")); 
    msgBox->setIcon... 
    ... 
    msgBox->setModal(false); // if you want it non-modal 
    msgBox->open(this, SLOT(msgBoxClosed(QAbstractButton*))); 

    //... do something else, without blocking 
} 

void MyWidget::msgBoxClosed(QAbstractButton*) { 
    //react on button click (usually only needed when there > 1 buttons) 
} 

बेशक आप इसे अपने स्वयं के सहायक कार्यों में लपेट सकते हैं ताकि आपको इसे अपने कोड पर डुप्लिकेट करने की आवश्यकता न हो।

+0

बहुत कुछ .. मैं 4 वही चीज़ देख रहा हूं। –

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