From 580f2213383bb26d0b568bc8cb356be7f7db2b70 Mon Sep 17 00:00:00 2001 From: sunwen Date: Thu, 9 May 2024 16:17:50 +0800 Subject: [PATCH] Fix AlertDialog wordwrap display problem. --- src/dialogs/AlertDialog.cpp | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/src/dialogs/AlertDialog.cpp b/src/dialogs/AlertDialog.cpp index 2f27d9a..00fe2be 100644 --- a/src/dialogs/AlertDialog.cpp +++ b/src/dialogs/AlertDialog.cpp @@ -16,20 +16,24 @@ AlertDialog::AlertDialog(QWidget *parent, Qt::WindowFlags f) mLblTitle->setAlignment(Qt::AlignCenter); mLblTitle->setText(tr("Warning")); mLblTitle->setObjectName("AlertDialogTitle"); + QFont font; + font.setPointSize(32); + mLblMsg->setFont(font); mLblMsg->setWordWrap(true); - mLblMsg->setMinimumHeight(70); layout->addWidget(mLblTitle); layout->addWidget(mLblMsg); } -void AlertDialog::setAlertMessage(const QString &msg) { +void AlertDialog::setAlertMessage(const QString &msg) +{ mLblMsg->setText(msg); - if (msg.length()>28) - { - mLblMsg->setWordWrap(true); - } + QFont font = mLblMsg->font(); + QFontMetrics metrics(font); + int width = metrics.width(mLblMsg->text()); + mLblMsg->setFixedHeight(metrics.lineSpacing() * (width / this->width()) + 30 );; } -void AlertDialog::setTitle(const QString &msg) { +void AlertDialog::setTitle(const QString &msg) +{ mLblTitle->setText(msg); }