Files
QT_wuhan_YT/widgets/confirmdialog.h
T
2026-10-16 09:06:03 +08:00

41 lines
1.4 KiB
C++

#ifndef CONFIRMDIALOG_H
#define CONFIRMDIALOG_H
#include <QDialog>
class QLabel;
class QPushButton;
// ===================== 确认弹窗 =====================
// 标题 + 正文 + 确认/取消;另提供 2s 自动消失的轻提示(toast)
class ConfirmDialog : public QDialog
{
Q_OBJECT
public:
explicit ConfirmDialog(QWidget* parent = nullptr);
void setTitle(const QString& t);
void setText(const QString& t);
// 模态确认,返回是否“确认”
static bool confirm(QWidget* parent, const QString& title, const QString& text);
// 独立信息弹窗(仅“确认”按钮,替代系统 QMessageBox)。
// width = 面板宽度,fontPx = **正文字号**(标题固定 50px);正文按宽度换行、高度按内容算。
// 两个参数都是**各调用点各给各的**——以前写死共用,一处的长文案会把别处的弹窗一起撑宽,
// 想让它窄一点就只能靠截断,现在可以靠缩字号。
static void message(QWidget* parent, const QString& title, const QString& text,
int width = 1200, int fontPx = 50);
// 轻提示:显示 text,ms 毫秒后自动消失(用于“修改成功”等)
static void toast(QWidget* parent, const QString& text, int ms = 2000);
private:
QLabel* m_title = nullptr;
QLabel* m_body = nullptr;
QWidget* m_panel = nullptr;
QPushButton* m_cancel = nullptr;
};
#endif // CONFIRMDIALOG_H