Files
Renderive/Demo_Gallery/base/Frequency_Axis_Test.h
T
2026-07-30 08:07:43 +08:00

37 lines
1.2 KiB
C++

#pragma once
#include "../../Renderive/base/Tool.h"
static QWidget* create_frequent_axis_test_plot() {
class Axis_Test_Plot : public renderive::Plot {
public:
std::shared_ptr<renderive::Frequency_Axis> axis{};
QMenu* menu{};
void init() override {
Plot::init();
object_name = "Axis_Test_Plot";
auto axis_node = create_renderable_node(get_root_renderable(), "Axis_Renderable");
axis = renderive::Frequency_Axis::Builder(axis_node, Qt::Horizontal)
.set_tick_length(-10)
.set_sub_tick_length(-5)
.set_coord_range({-12000, 12000})
.build();
}
protected:
void resizeEvent(QResizeEvent* event) override {
int space = 50;
axis->set_x(space);
axis->set_y(height() / 2);
axis->set_pixel_size(width() - space * 2);
}
void contextMenuEvent(QContextMenuEvent* event) override {
if (!menu) {
auto ws = bw(cw(axis.get()), "");
menu = create_menu(this, ws);
}
menu->exec(event->globalPos());
}
};
auto w = new Axis_Test_Plot;
w->init();
return w;
}