custommessagebox.cpp 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. #include "custommessagebox.h"
  2. CustomMessageBox::CustomMessageBox(QWidget *parent) : QMessageBox(parent) {}
  3. bool CustomMessageBox::showConfirmDialog(const QString &title, const QString &text, const QString &yesButtonText,
  4. const QString &noButtonText, QWidget *parent) {
  5. QMessageBox msgBox(parent);
  6. msgBox.setWindowTitle(title);
  7. msgBox.setText(text);
  8. QPushButton *yesButton = msgBox.addButton(yesButtonText, QMessageBox::YesRole);
  9. QPushButton *noButton = msgBox.addButton(noButtonText, QMessageBox::NoRole);
  10. // 设置按钮样式
  11. yesButton->setStyleSheet(
  12. "QPushButton { background-color:rgb(5, 58, 156); color: white; padding: 5px 15px; "
  13. "border-radius: 4px; }");
  14. noButton->setStyleSheet(
  15. "QPushButton { background-color: #f44336; color: white; padding: 5px 15px; "
  16. "border-radius: 4px; }");
  17. msgBox.exec();
  18. // 返回true表示用户选择了确定/继续,false表示取消
  19. return msgBox.clickedButton() == yesButton;
  20. }
  21. bool CustomMessageBox::showTimeoutDialog(const QString &title, const QString &text, const QString &continueButtonText,
  22. const QString &cancelButtonText, QWidget *parent) {
  23. return showConfirmDialog(title, text, continueButtonText, cancelButtonText, parent);
  24. }
  25. void CustomMessageBox::setupButtonStyles(QPushButton *yesButton, QPushButton *noButton) {
  26. yesButton->setStyleSheet(
  27. "QPushButton { background-color:rgb(5, 58, 156); color: white; padding: 5px 15px; "
  28. "border-radius: 4px; }");
  29. noButton->setStyleSheet(
  30. "QPushButton { background-color: #f44336; color: white; padding: 5px 15px; "
  31. "border-radius: 4px; }");
  32. }