How to make unblocking QMessagebox?
A:
If I get you right,
QMessageBox::information(0, "Information", "This is my unblocking message box!");
mosg
2010-07-09 12:49:05
A:
What do you mean by "unblocking"? Non-modal? Or one that doesn't blocks the execution until the user clicks ok? In both cases you'll need to create a QMessageBox manually instead of using the convenient static methods like QMessageBox::critical() etc.
In both cases, your friends are QDialog::open()
and QMessageBox::open( QObject*, const char* )
:
void MyWidget::someMethod() {
...
QMessageBox* msgBox = new QMessageBox( this );
msgBox->setAttribute( QWidget::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)
}
Of your you can wrap that in your own helper functions so you don't have to duplicate it all over your code.
Frank
2010-07-09 17:05:06
Thnks alot..I am looking 4 same thing.
greshi Gupta
2010-07-13 05:36:09