DiagramDesigner/diagramCavas/include/titleBar.h

48 lines
948 B
C++

#ifndef TITLEBAR_H
#define TITLEBAR_H
/**
* 自定义标题栏
* */
#include <QDialog>
#include <QVBoxLayout>
#include <QHBoxLayout>
#include <QLabel>
#include <QPushButton>
#include <QWidget>
#include <QMouseEvent>
#include <QApplication>
class TitleBar : public QWidget
{
Q_OBJECT
public:
explicit TitleBar(QWidget *parent = nullptr);
void setTitle(const QString &title);
void updateMaximizeButton(); // 根据窗口状态更新按钮文本
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;
QPushButton *m_maximizeButton;
QPushButton *m_closeButton;
bool m_isMaximized = false;
};
#endif