美文网首页
自定义样式的QMessageBox

自定义样式的QMessageBox

作者: 田陌允 | 来源:发表于2023-02-08 14:44 被阅读0次

废话不多说,直接上代码:

bool MainWindow::saveOnExit()
{
    QString det = tr("You are closing software, whether to save or update ini config file Now?");
    det = tr("<font size='5' color='white'>") + det;// html方法设置字号和颜色
    det += tr("</font>");
    QMessageBox msgbox(QMessageBox::Information,
                       ConfigApp::AppName,
                       det,
                       QMessageBox::Save | QMessageBox::Discard | QMessageBox::Cancel);// 翻译要在qt_zh_CN中设置
    msgbox.setParent(this);
    msgbox.setFixedHeight(200);
    msgbox.button(QMessageBox::Save)->setFont(QFont("Microsoft Yahei"));//设置按钮字体
    msgbox.button(QMessageBox::Discard)->setFont(QFont("Microsoft Yahei"));
    msgbox.button(QMessageBox::Cancel)->setFont(QFont("Microsoft Yahei"));
    msgbox.setStyleSheet("QMessageBox{background-color: qlineargradient(spread:pad, x1: 0, y1: 0, x2: 0, y2: 1, \
                                    stop:0 rgb(20,124,209), \
                                    stop: 0.5 rgb(18,97,163), \
                                    stop: 1 rgb(28,120,183));}");
    int ret = msgbox.exec();
    switch (ret)
    {
    case QMessageBox::Save:
        return saveIni();
    case QMessageBox::Cancel:
        return false;
    default:
        break;
    }

    return true;
}

说明:这是一个软件退出弹窗,里面包含保存-不保存-取消三种状态。
--取消在这里意思是取消退出,继续操作软件;
--保存在这里意思是执行保存操作后退出软件;
--不保存在这里意思是强制退出软件。
主要记录下html方法设置字号和颜色、msgbox.button字体设置,msgbox.setStyleSheet设置整体样式的方法。

如果对您有用,点个赞就很nice

相关文章

网友评论

      本文标题:自定义样式的QMessageBox

      本文链接:https://www.haomeiwen.com/subject/fbuqkdtx.html