命名规范
This commit is contained in:
@@ -0,0 +1,62 @@
|
||||
#pragma once
|
||||
#include "../Renderive/base/Tool.h"
|
||||
static QWidget* create_spectrun_plot() {
|
||||
class Spectrum_Plot : public renderive::Plot {
|
||||
public:
|
||||
std::shared_ptr<renderive::Frequency_Axis> x_axis{};
|
||||
std::shared_ptr<renderive::Axis> y_axis{};
|
||||
std::shared_ptr<renderive::Multi_Select_Rect> msr{};
|
||||
std::shared_ptr<renderive::Spectrum> sp{};
|
||||
QMenu* menu{};
|
||||
void init() override {
|
||||
Plot::init();
|
||||
object_name = "Spectrum_Plot";
|
||||
auto data = create_renderable_node(get_root_renderable(), "Data_Renderable");
|
||||
auto axis = create_renderable_node(get_root_renderable(), "Axis_Renderable");
|
||||
auto overlay = create_renderable_node(get_root_renderable(), "Overlay_Renderable");
|
||||
x_axis = renderive::Frequency_Axis::Builder(axis, Qt::Horizontal)
|
||||
.set_coord_range({0, 100})
|
||||
.set_tick_length(-10)
|
||||
.set_sub_tick_length(-5)
|
||||
.set_use_wheel(true)
|
||||
.set_use_drag(true)
|
||||
.build();
|
||||
y_axis = renderive::Axis::Builder(axis, Qt::Vertical)
|
||||
.set_coord_range({100, 0})
|
||||
.set_unit_text("功率")
|
||||
.set_use_drag(true)
|
||||
.build();
|
||||
sp = renderive::Spectrum::Builder(data, x_axis, y_axis)
|
||||
.set_frequency_range({0, 100})
|
||||
.build();
|
||||
msr = renderive::Multi_Select_Rect::Builder(overlay, x_axis, y_axis).build();
|
||||
}
|
||||
protected:
|
||||
void resizeEvent(QResizeEvent* event) override {
|
||||
int left_margin = 20, right_margin = 20, top_margin = 20, bottom_margin = 20;
|
||||
int w = width() - left_margin - right_margin;
|
||||
int h = height() - top_margin - bottom_margin;
|
||||
x_axis->set_x(left_margin);
|
||||
x_axis->set_y(height() - bottom_margin);
|
||||
x_axis->set_pixel_size(w);
|
||||
y_axis->set_x(left_margin);
|
||||
y_axis->set_y(top_margin);
|
||||
y_axis->set_pixel_size(h);
|
||||
sp->set_frequency_point_size(sp->frequency_axis()->get_pixel_point_size());
|
||||
}
|
||||
void contextMenuEvent(QContextMenuEvent* event) override {
|
||||
if (!menu) {
|
||||
auto ws =
|
||||
bw(cw(sp.get(), -1), "频谱图") +
|
||||
bw(cw(x_axis.get()), "频率x轴") +
|
||||
bw(cw(y_axis.get()), "功率y轴") +
|
||||
bw(cw(msr.get()), "多选框");
|
||||
menu = create_menu(this, ws);
|
||||
}
|
||||
menu->exec(event->globalPos());
|
||||
}
|
||||
};
|
||||
auto w = new Spectrum_Plot;
|
||||
w->init();
|
||||
return w;
|
||||
}
|
||||
Reference in New Issue
Block a user