#pragma once #include "Tool.h" static QWidget* createSweepFrequentPlot() { class SweepFrequentPlot : public YSG::Plot { public: YSG::Axis *xAxis{}; YSG::Axis *yAxis{}; YSG::MutiSelectRect *msr{}; YSG::SweepFrequent* sf{}; QMenu *mMenu{}; void init() override { Plot::init(); mObjectName = "AxisTestPlot"; bindRenderThread(mObjectName + "Thread"); xAxis = YSG::Axis::Builder(this, Qt::Horizontal) .set_coordRange({0, 100}) .set_tickLength(-10).build(); yAxis = YSG::Axis::Builder(this, Qt::Vertical) .set_coordRange({100, 0}) .build(); sf = YSG::SweepFrequent::Builder(xAxis, yAxis) .set_blockNum(200) .set_blockFrequentPointSize(20) .set_frequentRange({0, 100}).build(); msr = YSG::MutiSelectRect::Builder(xAxis, yAxis).build(); } protected: void resizeEvent(QResizeEvent* event) override { xAxis->set_x(0); xAxis->set_y(height() - 1); xAxis->set_pixelSize(width()); yAxis->set_x(0); yAxis->set_y(0); yAxis->set_pixelSize(height()); } void contextMenuEvent(QContextMenuEvent* event) override { if(!mMenu) { auto ws = bw(cw(sf, -1), "扫频图") + bw(cw(xAxis), "x轴") + bw(cw(yAxis), "y轴") + bw(cw(msr), "多选框"); mMenu = createMenu(this, ws); } mMenu->exec(event->globalPos()); } }; auto w = new SweepFrequentPlot; w->init(); return w; }