#pragma once #include #include #include #include class DockWidgetTitleBar : public QWidget { Q_OBJECT public: DockWidgetTitleBar(QWidget* parent); ~DockWidgetTitleBar() override; virtual void SetTitle(const QString& title) {} //QSize sizeHint() const override { // return QSize(270, 900); //} //QSize minimumSizeHint() const override; Q_SIGNALS: void signalClose(); }; class DockWidget : public QDockWidget { Q_OBJECT public: DockWidget(const QString& title, QWidget* parent = nullptr); DockWidget(QWidget* parent = 0); ~DockWidget() override; void setWindowTitle(const QString& text); void SetDockWidgetTitleBar(DockWidgetTitleBar* titleBar); Q_SIGNALS: void signalClose(); protected: void showEvent(QShowEvent* e) override; void resizeEvent(QResizeEvent* e) override; void paintEvent(QPaintEvent* e) override; private: void OnClose(); private: DockWidgetTitleBar* titleBar_{ nullptr }; };