2021年04月01日
【QT5】わからないのでタイムアウトで自動でキャンセルボタン押すメッセージボックスつくってみた
ほんとわけわからん でも動作だけはするのだ
なかんじ
#ifndef SHORTMESSAGEBOX_H
#define SHORTMESSAGEBOX_H
#include
#include
class ShortMessageBox : public QWidget
{ Q_OBJECT
public:
explicit ShortMessageBox(QWidget *parent = nullptr);
~ShortMessageBox();
int exec(QString msg="",int interval=1000);
QPushButton * CancelButton;
signals:
private:QMessageBox *m_msgbox=nullptr;
};
#endif // SHORTMESSAGEBOX_H
#ifndef
#include "shortmessagebox.h"
#include
#include
ShortMessageBox::ShortMessageBox(QWidget *parent) : QWidget(parent)
{ m_msgbox= new QMessageBox(this);
this->setWindowTitle(QString("attention"));
m_msgbox->setStandardButtons(QMessageBox::Cancel | QMessageBox::Ok);
QListbuttonlist= this->findChildren ();
for(int i=0;isetObjectName(bt->text());}
CancelButton=m_msgbox->findChild("&Cancel");
}
int ShortMessageBox::exec(QString msg,int interval)
{
if(msg=="")
{
msg ="--------------------------------\n";
msg+="既に存在しています \n";
msg+=" 再構築する場合1.5秒位内にOKを押してください \n";
msg+="********************************\n";
}
m_msgbox->setText(msg);
m_msgbox->show();
QTimer * m_myLongTimer = new QTimer(this);
m_myLongTimer->setInterval(interval);
m_myLongTimer->setSingleShot(true);
connect(m_myLongTimer, &QTimer::timeout,this, [this](){this->CancelButton->animateClick(); });
m_myLongTimer->start();
int ret=m_msgbox->exec();
disconnect(m_myLongTimer);
m_myLongTimer->stop();
delete m_myLongTimer;
return ret;
}
ShortMessageBox::~ShortMessageBox()
{
if(m_msgbox) {delete m_msgbox;m_msgbox=nullptr;}
}
使い方はみりゃわかるべな
ShortMessageBox msg;
bool rmdirflg=false;
int ret=msg.exec();
switch (ret)
{
case QMessageBox::Ok: qDebug()<<"//OK押されたら 存在をけす"; rmdirflg=true; break;
case QMessageBox::Cancel: qDebug()<<"/Cancel"; break;
default: qDebug()<<"// 来ないけど一応。"; break;
}
if(!rmdirflg)return;
なかんじ
【このカテゴリーの最新記事】
-
no image
-
no image
-
no image
-
no image
-
no image
-
no image
-
no image
-
no image
-
no image
-
no image
-
no image
-
no image
-
no image
この記事へのコメント
コメントを書く
この記事へのトラックバックURL
https://fanblogs.jp/tb/10635072
※ブログオーナーが承認したトラックバックのみ表示されます。
この記事へのトラックバック