タイムアウトまで保存メッセージボックスを表示する必要があります。 タイムアウトが発生したら、スロットに行き、何らかの機能を実行します。Qtメッセージボックス - タイムアウトまでメッセージボックスを表示
timerToSave=new QTimer(this);
connect(timerToSave,SIGNAL(timeout()),this,SLOT(SavingStatusSlot()));
上記のコードは、タイムアウトがsaveslotに移動するときのタイマーです。
bool PopUpManager::PopUpSaveStaus()
{
timerToSave->start(3000);
saveStatus=false;
if(SetThread::getInstance()->UISaveStatus==ST_PROCESSING)
{
msgBox = new QMessageBox(0);
msgBox->setModal(true);
msgBox->setText("Saving ... ");
msgBox->setIcon(QMessageBox::Information);
msgBox->setStandardButtons(QMessageBox::Ok);
msgBox->setCursor(Qt::WaitCursor);
msgBox->setWindowFlags(Qt::FramelessWindowHint| Qt::WindowStaysOnTopHint);
msgBox->setStyleSheet("background-color:#444;color:#FFF;outline:none;");
msgBox->exec();
}
else
SavingStatusSlot();
return saveStatus;
}
上記のメソッドは、ユーザーが[保存]ボタンをクリックしたときに呼び出されます。 メソッドが呼び出されたら、タイマーを起動してメッセージボックスを表示します。
タイムアウトは、このコードが動作している
void PopUpManager::SavingStatusSlot()
{
msgBox->button(QMessageBox::Ok)->animateClick();
timerToSave->stop();
if(SetThread::getInstance()->UISaveStatus==ST_OK)
{
saveStatus=true;
}
else
{
PopUpWithOKButton(" Saving Error ");
saveStatus=false;
}
}
[下記の]スロットを呼び出す発生した場合、私はOKボタンとするとき、タイムアウトがアニメーションクリックを作成し、いくつかの機能を実行するとメッセージボックスを使用していました。
は、今私は、ボタンやタイムアウトせずにメッセージボックスを表示するメッセージボックスは、その後、メッセージボックスの近くには、()に動作していないいくつかの機能
しかしを行う閉じたいです。
void PopUpManager::ClosePopUP()
{
if(msgBox->isEnabled())
msgBox->close();
}
上記のコードを呼び出すと、メッセージボックスは閉じる必要がありますが、表示しています。
誰でも私にこれを手伝ってもらえますか? ありがとうございます。
多分このページのヘルプあなたは:[http://stackoverflow.com/questions/2236800/auto-close-qmessagebox](http://stackoverflow.com/questions/2236800/auto-close-qmessagebox) – aghilpro