41 lines
1.4 KiB
C++
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
|