Files
Radio/module/F/function/a1_采集预处理.h
T
2026-06-16 13:38:08 +08:00

100 lines
3.6 KiB
C++

#ifndef a_采集预处理_H
#define a_采集预处理_H
#include "function_global.h"
class T_采集预处理_瀑布图 : public YSG::Plot {
public:
YSG::FrequentAxis* xAxis{};
YSG::TimeAxis* yAxis{};
YSG::MutiSelectRect* msr{};
YSG::WaterFall* wf{};
QMenu* mMenu{};
void init() override {
Plot::init();
mObjectName = "WaterFallPlot";
bindRenderThread(mObjectName + "Thread");
xAxis = YSG::FrequentAxis::Builder(this, Qt::Horizontal).set_tickLength(-10).set_subTickLength(-5).build();
yAxis = YSG::TimeAxis::Builder(this, Qt::Vertical).build();
wf = YSG::WaterFall::Builder(xAxis, yAxis).set_layerName("plottable").set_frequentRange({0, 20}).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());
// wf->set_frequentPointSize(wf->frequentAxis()->getPixelPointSize());
wf->set_frequentPointSize(width());
}
void contextMenuEvent(QContextMenuEvent* event) override {
if (!mMenu)
{
auto ws =
bw(cw(wf, -1), "瀑布图") + bw(cw(xAxis), "频率轴") + bw(cw(yAxis), "时间轴") + bw(cw(msr), "多选框");
mMenu = createMenu(this, ws);
}
mMenu->exec(event->globalPos());
}
};
class T_采集预处理_频谱图 : public YSG::Plot {
public:
YSG::FrequentAxis* xAxis{};
YSG::Axis* yAxis{};
YSG::MutiSelectRect* msr{};
YSG::Spectrum* sp{};
QMenu* mMenu{};
void init() override {
Plot::init();
mObjectName = "SpectrumPlot";
bindRenderThread(mObjectName + "Thread");
xAxis = YSG::FrequentAxis::Builder(this, Qt::Horizontal)
.set_coordRange({0, 100})
.set_tickLength(-10)
.set_subTickLength(-5)
.set_use_wheel(true)
.set_use_drag(true)
.build();
yAxis = YSG::Axis::Builder(this, Qt::Vertical)
.set_coordRange({100, 0})
.set_unitText("功率")
.set_use_drag(true)
.build();
sp = YSG::Spectrum::Builder(xAxis, yAxis).set_frequentRange({0, 100}).build();
msr = YSG::MutiSelectRect::Builder(xAxis, yAxis).build();
}
protected:
void resizeEvent(QResizeEvent* event) override {
int leftMargin = 20, rightMargin = 20, topMargin = 20, bottomMargin = 20;
int w = width() - leftMargin - rightMargin;
int h = height() - topMargin - bottomMargin;
xAxis->set_x(leftMargin);
xAxis->set_y(height() - bottomMargin);
xAxis->set_pixelSize(w);
yAxis->set_x(leftMargin);
yAxis->set_y(topMargin);
yAxis->set_pixelSize(h);
sp->set_frequentPointSize(sp->frequentAxis()->getPixelPointSize());
}
void contextMenuEvent(QContextMenuEvent* event) override {
if (!mMenu)
{
auto ws =
bw(cw(sp, -1), "频谱图") + bw(cw(xAxis), "频率x轴") + bw(cw(yAxis), "功率y轴") + bw(cw(msr), "多选框");
mMenu = createMenu(this, ws);
}
mMenu->exec(event->globalPos());
}
};
class : public BaseWidget {
public:
QHBoxLayout* mainLayout{};
T_采集预处理_瀑布图* m_瀑布图{};
T_采集预处理_频谱图* m_频谱图{};
QVBoxLayout* createV();
();
void paintEvent(QPaintEvent* event) override;
};
#endif