/
MaximU
/
arraywidget
Обзор
Документация
Войти
/
MaximU
/
arraywidget
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
plotsetwidget.h
91 строка
5 KB
user
Forward declaration namespace Ui { class …; } и Ui::… *ui.
27 июл 2026, 14:24
27 июл 2026, 14:24
2696d58
Код
Авторство
О чём код?
#ifndef PLOTSETWIDGET_H #define PLOTSETWIDGET_H #include <QWidget> #include "qwtplotext.h" const QSizeF PlotSetDefaultDivision = QSizeF(0.3, 0.7); //!< Пропорции ширины и высоты графиков по умолчанию. namespace Ui { class PlotSetWidgetClass; } /*! * \brief Класс набора графиков. */ class PlotSetWidget : public QWidget { Q_OBJECT public: /*! * \brief Перечисление идентификаторов графиков. */ enum PlotIDs { PlotIDCentralPlot = 1, //!< Идентификатор центрального графика. PlotIDLeftPlot, //!< Идентификатор левого графика. PlotIDBottomPlot, //!< Идентификатор нижнего графика. }; explicit PlotSetWidget(QWidget *parent); ~PlotSetWidget() override; void setValue(QVariant value); QVariant value() const; void setTitleFormat(const QString &format); void setDivision(const QSizeF &division); QSizeF division() const; void setTitleVisible(bool visible); void setLeftPlotVisible(bool visible); bool isLeftPlotVisible() const; void setTopPlotVisible(bool visible); bool isTopPlotVisible() const; void init(const QString &format, QSizeF division, bool leftPlotVisible, bool topPlotVisible); QwtPlotExt * plot(PlotIDs plotId); QwtPlotItem * plotItem(PlotIDs plotId, void *key); bool addPlotItem(QwtPlotItem *plotItem, PlotIDs plotId, void *key); void setZoomBase(PlotIDs id, const QRectF &rect1, const QRectF &rect2); void resetZoomStack(); void updateView(); protected: bool eventFilter(QObject *obj, QEvent *event) override; void resizeEvent(QResizeEvent *event) override; private: void setupCentralPlot(); void setupLeftPlot(); void setupBottomPlot(); Ui::PlotSetWidgetClass *ui; QVariant mValue; //!< Специальное значение. QString mTitleFormat = "%1"; //!< Формат строки заголовка. QSizeF mDivision = PlotSetDefaultDivision; //!< Пропорции ширины и высоты графиков. bool mTitleVisible = true; //!< Признак отображения заголовка. bool mLeftPlotVisible = true; //!< Признак отображения левого графика. bool mBottomPlotVisible = true; //!< Признак отображения правого графика. QMap<void *, QwtPlotItem *> mItemMapLeft; //!< Ассоциативный массив объектов отображения левого графика. QMap<void *, QwtPlotItem *> mItemMapTop; //!< Ассоциативный массив объектов отображения верхнего графика. private slots: void slot_pickerPlotCentral_getTrackerText(const QPointF &, QwtText &); void slot_pickerPlotLeft_getTrackerText(const QPointF &, QwtText &); void slot_pickerPlotBottom_getTrackerText(const QPointF &, QwtText &); signals: void initRequest(); //!< Сигнал о необходимости инициализации набора графиков. void closeRequest(); //!< Сигнал о необходимости закрытия набора графиков. void updateRequest(); //!< Сигнал о необходимости обновления набора графиков. void divisionChanged(); //!< Сигнал об изменении пропорций ширины и высоты графиков набора графиков. void mousePress(PlotSetWidget *, int, QPointF, Qt::MouseButtons); //!< Сигнал о нажатии кнопки мыши в графиках. void mouseMove(PlotSetWidget *, int, QPointF, Qt::MouseButtons); //!< Сигнал о перемещении мыши в графиках. void mouseRelease(PlotSetWidget *, int, QPointF, Qt::MouseButtons); //!< Сигнал об отжатии кнопки мыши в графиках. void centralPlotDrawBackground(QPainter *, const QwtScaleMap &, const QwtScaleMap &, const QRectF &); //!< Сигнал об отрисовке заднего плана левого графика. void centralPlotDrawForeground(QPainter *, const QwtScaleMap &, const QwtScaleMap &, const QRectF &); //!< Сигнал об отрисовке переднего плана левого графика. void leftPlotDrawBackground(QPainter *, const QwtScaleMap &, const QwtScaleMap &, const QRectF &); //!< Сигнал об отрисовке заднего плана левого графика. void leftPlotDrawForeground(QPainter *, const QwtScaleMap &, const QwtScaleMap &, const QRectF &); //!< Сигнал об отрисовке переднего плана левого графика. void bottomPlotDrawBackground(QPainter *, const QwtScaleMap &, const QwtScaleMap &, const QRectF &); //!< Сигнал об отрисовке заднего плана нижнего графика. void bottomPlotDrawForeground(QPainter *, const QwtScaleMap &, const QwtScaleMap &, const QRectF &); //!< Сигнал об отрисовке переднего плана нижнего графика. }; #endif // PLOTSETWIDGET_H