#include "yesnopopupdlg.h" #include "ui_yesnopopupdlg.h" #include "soundplayer.h" YesNoPopupDlg::YesNoPopupDlg(QWidget *parent, QString strDesc) : QDialog(parent), ui(new Ui::YesNoPopupDlg) { ui->setupUi(this); this->setAttribute( Qt::WA_DeleteOnClose); setWindowFlags(Qt::FramelessWindowHint); setAttribute(Qt::WA_NoSystemBackground,false); setAttribute(Qt::WA_TranslucentBackground); qApp->setActiveWindow(this); this->setFocus(); //setAttribute(Qt::WA_PaintOnScreen); ui->ctrLbDesc->setText(strDesc); //this->setAttribute( Qt::WA_DeleteOnClose); foreach (QPushButton *button, findChildren()) connect(button, &QPushButton::pressed, SoundPlayer::playClick); ui->ctrBtnYes->setFocus(); } YesNoPopupDlg::~YesNoPopupDlg() { delete ui; } void YesNoPopupDlg::on_ctrBtnYes_clicked() { this->accept(); } void YesNoPopupDlg::on_ctrBtnNo_clicked() { this->reject(); } void YesNoPopupDlg::keyPressEvent(QKeyEvent *event){ switch (event->key()) { case 0x01000030: // Turn left if(focusWidget() == ui->ctrBtnYes) ui->ctrBtnNo->setFocus(); else ui->ctrBtnYes->setFocus(); break; case 0x01000031: // Push break; case 0x01000032: // Turn right if(focusWidget() == ui->ctrBtnYes) ui->ctrBtnNo->setFocus(); else ui->ctrBtnYes->setFocus(); break; } } void YesNoPopupDlg::keyReleaseEvent(QKeyEvent *event){ switch (event->key()) { case 0x01000030: // Turn left if(focusWidget() == ui->ctrBtnYes) ui->ctrBtnNo->setFocus(); else ui->ctrBtnYes->setFocus(); break; case 0x01000031: // Push { QPushButton *btn = qobject_cast(focusWidget()); if(btn != NULL){ btn->click(); } break; } case 0x01000032: // Turn right if(focusWidget() == ui->ctrBtnYes) ui->ctrBtnNo->setFocus(); else ui->ctrBtnYes->setFocus(); break; } }