Files
HPPA/HPPA/CustomDockWidgetBase.h
tangchao0503 797ff77f5f 修改界面:
1、右下角看板通过tabwidget管理很多可扩展控制页面;
2、定制右下角放大功能:占用右上角的看板空间;
2025-11-13 14:51:37 +08:00

54 lines
1.1 KiB
C++

#pragma once
#include <QDockWidget>
#include <QToolButton>
#include <QStyle>
#include <QHBoxLayout>
#include <QMainWindow>
#include <QMap>
#include <QSize>
#include <QLabel>
class CustomDockWidgetBase :
public QDockWidget
{
Q_OBJECT
public:
explicit CustomDockWidgetBase(QString title, QMainWindow* parent = nullptr);
explicit CustomDockWidgetBase(QMainWindow* parent = nullptr);
void setTile(QString title);
void hideMaxButton();
public slots:
virtual void toggleMaximize();
signals:
void maximizeStateChanged(bool isMaximized);
protected:
QMainWindow* m_mainWindow = nullptr;
QToolButton* m_maxButton = nullptr;
bool m_isMaximized = false;
QList<QDockWidget*> m_hiddenDocks;
QByteArray m_savedState;
QMap<QDockWidget*, QSize> m_originalSizes;
QLabel* title_label;
void initialize();
};
class CustomDockWidgetHideAbove :
public CustomDockWidgetBase
{
Q_OBJECT
public:
explicit CustomDockWidgetHideAbove(QString title, QMainWindow* parent = nullptr);
explicit CustomDockWidgetHideAbove(QMainWindow* parent = nullptr);
private slots:
void toggleMaximize();
private:
};