#ifndef TITLEBAR_H #define TITLEBAR_H /** * 自定义标题栏 * */ #include #include #include #include #include #include #include #include class TitleBar : public QWidget { Q_OBJECT public: explicit TitleBar(QWidget *parent = nullptr,bool bClose = false,bool bMaxMin = false); void setTitle(const QString &title); void updateMaximizeButton(); // 根据窗口状态更新按钮文本 void setCenterText(const QString &text); signals: void maximizeClicked(); void closeClicked(); protected: void mousePressEvent(QMouseEvent *event) override; void mouseMoveEvent(QMouseEvent *event) override; void mouseDoubleClickEvent(QMouseEvent *event) override; private: void setupUI(); private: QPoint m_dragStartPosition; QWidget *m_parentWindow; QLabel *m_titleLabel; QLabel *m_centerLabel = nullptr; QPushButton *m_maximizeButton; QPushButton *m_closeButton; bool m_isMaximized = false; bool _bShowClose = false; bool _bShowMaxMin = false; }; #endif