#ifndef CONFIRMDIALOG_H #define CONFIRMDIALOG_H #include 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