初步重构

This commit is contained in:
2026-07-23 17:06:07 +08:00
parent 4d4b7f5599
commit 4530cd3fbe
15 changed files with 187 additions and 187 deletions
@@ -27,23 +27,23 @@ QWidget* IntermediateFrequencyWidget::createSpectrogramPowerPlot() {
Plot::init();
mObjectName = "SpectrumPlot";
xAxis = YSG::FrequentAxis::Builder(this, Qt::Horizontal)
.set_tickLength(-10)
.set_coordRange(frequent_range)
.set_tickLength(-10)
.set_subTickLength(-5)
.set_tick_length(-10)
.set_coord_range(frequent_range)
.set_tick_length(-10)
.set_sub_tick_length(-5)
.build();
yAxis = YSG::Axis::Builder(this, Qt::Vertical)
.set_coordRange({160, 0})
.set_unitText("功率")
.set_coord_range({160, 0})
.set_unit_text("功率")
.build();
sp = YSG::Spectrum::Builder(xAxis, yAxis)
.set_frequentRange(frequent_range)
.set_useSweepFrequentRect(true)
.set_frequentPointSize(1024)
.set_frequent_range(frequent_range)
.set_use_sweep_frequent_rect(true)
.set_frequent_point_size(1024)
.build();
msr = YSG::MutiSelectRect::Builder(xAxis, yAxis).build();
@@ -52,10 +52,10 @@ QWidget* IntermediateFrequencyWidget::createSpectrogramPowerPlot() {
void resizeEvent(QResizeEvent* event) override {
xAxis->set_x(0);
xAxis->set_y(height() - 1);
xAxis->set_pixelSize(width());
xAxis->set_pixel_size(width());
yAxis->set_x(0);
yAxis->set_y(0);
yAxis->set_pixelSize(height());
yAxis->set_pixel_size(height());
}
void contextMenuEvent(QContextMenuEvent* event) override {
if(!mMenu) {
@@ -73,9 +73,9 @@ QWidget* IntermediateFrequencyWidget::createSpectrogramPowerPlot() {
w->init();
mSpectrogramLine = w->sp;
mProgressBar1->mSetValue = [this]() {
double middleFrequent = this->mSpectrogramLine->frequentRange().center();
double middleFrequent = this->mSpectrogramLine->frequent_range().center();
bool ok;
this->mProgressBar1->mValue = mSpectrogramLine->getPower(middleFrequent, ok, YSG::SRC::Edit);
this->mProgressBar1->mValue = mSpectrogramLine->get_power(middleFrequent, ok, YSG::SRC::Edit);
};
return w;
}
@@ -92,24 +92,24 @@ QWidget* IntermediateFrequencyWidget::create_Afterglow_Plot(){
Plot::init();
mObjectName = "AfterglowPlot";
xAxis = YSG::FrequentAxis::Builder(this, Qt::Horizontal)
.set_coordRange(frequent_range)
.set_tickLength(-10)
.set_subTickLength(-5)
.set_coord_range(frequent_range)
.set_tick_length(-10)
.set_sub_tick_length(-5)
.set_use_drag(true)
.build();
yAxis = YSG::Axis::Builder(this, Qt::Vertical)
.set_coordRange({160, 0})
.set_coord_range({160, 0})
.set_use_drag(true)
.build();
ag = YSG::Afterglow::Builder(xAxis, yAxis)
.set_frequentRange(frequent_range)
.set_powerRange({0 , 160})
.set_frequentPointSize(1024)
.set_frequent_range(frequent_range)
.set_power_range({0 , 160})
.set_frequent_point_size(1024)
.build();
@@ -119,11 +119,11 @@ QWidget* IntermediateFrequencyWidget::create_Afterglow_Plot(){
void resizeEvent(QResizeEvent* event) override {
xAxis->set_x(0);
xAxis->set_y(height() - 1);
xAxis->set_pixelSize(width());
xAxis->set_pixel_size(width());
yAxis->set_x(0);
yAxis->set_y(0);
yAxis->set_pixelSize(height());
ag->set_powerPointSize(ag->powerAxis()->getPixelPointSize());
yAxis->set_pixel_size(height());
ag->set_power_point_size(ag->power_axis()->get_pixel_point_size());
}
void contextMenuEvent(QContextMenuEvent* event) override {
if(!mMenu) {
@@ -230,13 +230,13 @@ void IntermediateFrequencyWidget::focusInEvent(QFocusEvent *event) {
void IntermediateFrequencyWidget::initMenu() {
int fontSize = 30;
auto btn1 = new DoubleTextMenuButton("设置最大值标记", "取消最大值标记", fontSize, [&](bool isFirst){
mSpectrogramLine->set_useMaxMarker(isFirst);
mSpectrogramLine->set_use_max_marker(isFirst);
mBaseWidgetMenu->hide();
MainWidget::instance()->getCurrentBaseWidget()->setFocus();
});
auto btn2 = new DoubleTextMenuButton("设置最小值标记", "取消最小值标记", fontSize, [&](bool isFirst){
mSpectrogramLine->set_useMinMarker(isFirst);
mSpectrogramLine->set_use_min_marker(isFirst);
mBaseWidgetMenu->hide();
MainWidget::instance()->getCurrentBaseWidget()->setFocus();
});
@@ -249,19 +249,19 @@ void IntermediateFrequencyWidget::initMenu() {
auto frequentStep2 = new ValueMenuButton("频率步进:%1", fontSize, [this](ValueMenuButton* that, bool add){
int newFrequent = (int)that->mValue + (add?1:-1);
that->setValue(newFrequent);
mSpectrogramLine->setCurrentMarkerFrequent(newFrequent);
}, qMax(0.0, mSpectrogramLine->frequentRange().length()/50.0));
auto btn_middleFrequent = new ValueMenuButton("中频:%1 Hz", fontSize, nullptr, mSpectrogramLine->middleSweepFrequent());
mSpectrogramLine->set_current_marker_frequent(newFrequent);
}, qMax(0.0, mSpectrogramLine->frequent_range().length()/50.0));
auto btn_middleFrequent = new ValueMenuButton("中频:%1 Hz", fontSize, nullptr, mSpectrogramLine->middle_sweep_frequent());
auto btn_frequentWidth = new ValueMenuButton("频宽:%1 Hz", fontSize, [this, frequentStep2](ValueMenuButton* that, bool add){
that->setValue(that->mValue + (double)(add?frequentStep2->mValue:-frequentStep2->mValue));
double middleSweepFrequent = mSpectrogramLine->middleSweepFrequent();
mSpectrogramLine->set_sweepFrequentRange({middleSweepFrequent - that->mValue, middleSweepFrequent + that->mValue});
}, qAbs(mSpectrogramLine->sweepFrequentRange().length()/2));
double middle_sweep_frequent = mSpectrogramLine->middle_sweep_frequent();
mSpectrogramLine->set_sweep_frequent_range({middle_sweep_frequent - that->mValue, middle_sweep_frequent + that->mValue});
}, qAbs(mSpectrogramLine->sweep_frequent_range().length()/2));
btn_middleFrequent->mValueChanged = [this, btn_frequentWidth, frequentStep2](ValueMenuButton* that, bool add){
that->setValue(that->mValue + (double)(add?frequentStep2->mValue:-frequentStep2->mValue));
mSpectrogramLine->set_middleSweepFrequent(that->mValue);
mSpectrogramLine->set_sweepFrequentRange({that->mValue - btn_frequentWidth->mValue, that->mValue + btn_frequentWidth->mValue});
mSpectrogramLine->set_middle_sweep_frequent(that->mValue);
mSpectrogramLine->set_sweep_frequent_range({that->mValue - btn_frequentWidth->mValue, that->mValue + btn_frequentWidth->mValue});
};
auto btn2_2 = new ValueMenuButton("参考增益:%1", fontSize, [&](ValueMenuButton* that, bool add){
@@ -277,45 +277,45 @@ void IntermediateFrequencyWidget::initMenu() {
auto frequentStep = new ValueMenuButton("频率步进:%1", fontSize, [this](ValueMenuButton* that, bool add){
int newFrequent = (int)that->mValue + (add?1:-1);
that->setValue(newFrequent);
mSpectrogramLine->setCurrentMarkerFrequent(newFrequent);
}, qMax(0.0, mSpectrogramLine->frequentRange().length()/50.0));
mSpectrogramLine->set_current_marker_frequent(newFrequent);
}, qMax(0.0, mSpectrogramLine->frequent_range().length()/50.0));
auto markFrequent = new ValueMenuButton("更改标记频率:%1", fontSize, [frequentStep, this](ValueMenuButton* that, bool add){
int newFrequent = (int)that->mValue + (add?frequentStep->mValue:-frequentStep->mValue);
that->setValue(newFrequent);
mSpectrogramLine->setCurrentMarkerFrequent(newFrequent);
mSpectrogramLine->set_current_marker_frequent(newFrequent);
}, -1);
auto addInitFrequent = new ValueMenuButton("添加初始频率:%1", fontSize, [frequentStep,this](ValueMenuButton* that, bool add){
int newFrequent = (int)that->mValue + (add?frequentStep->mValue:-frequentStep->mValue);
that->setValue(newFrequent);
}, mSpectrogramLine->frequentRange().lower);
}, mSpectrogramLine->frequent_range().lower);
auto btn1_1 = new ValueMenuButton("当前标记:%1", fontSize, [&, markFrequent](ValueMenuButton* that, bool add){
int index = ((int)that->mValue + (add?1:-1) ) % mSpectrogramLine->selectLineMarkerSize();
int index = ((int)that->mValue + (add?1:-1) ) % mSpectrogramLine->select_line_marker_size();
that->setValue(index);
mSpectrogramLine->setSelectedLineMarker(index);
markFrequent->setValue(mSpectrogramLine->getMarkFrequent(index));
mSpectrogramLine->set_selected_line_marker(index);
markFrequent->setValue(mSpectrogramLine->get_mark_frequent(index));
}, -1);
auto btn1_2 = new MenuButton("添加标记", fontSize, [&, addInitFrequent](){
mSpectrogramLine->addCustomLineMarker(addInitFrequent->mValue);
mSpectrogramLine->add_custom_line_marker(addInitFrequent->mValue);
});
auto btn1_3 = new MenuButton("删除标记", fontSize, [&](){
mSpectrogramLine->removeCurrentMarker();
int size = mSpectrogramLine->selectLineMarkerSize();
mSpectrogramLine->remove_current_marker();
int size = mSpectrogramLine->select_line_marker_size();
if(size == 0){
mSpectrogramLine->setSelectedLineMarker(-1);
mSpectrogramLine->set_selected_line_marker(-1);
} else {
mSpectrogramLine->setSelectedLineMarker(0);
mSpectrogramLine->set_selected_line_marker(0);
}
});
connect(sub1, &BaseWidgetMenu::showThat, [&, markFrequent](){
mSpectrogramLine->setSelectedLineMarker(0);
markFrequent->setValue(mSpectrogramLine->getMarkFrequent(0));
mSpectrogramLine->set_selected_line_marker(0);
markFrequent->setValue(mSpectrogramLine->get_mark_frequent(0));
});
connect(sub1, &BaseWidgetMenu::hideThat, [&](){
mSpectrogramLine->unSelectMarker();
mSpectrogramLine->un_select_marker();
});
sub1->addMenuButtonOnLayout1({btn1_1, btn1_2, btn1_3},2);
sub1->addMenuButtonOnLayout2({frequentStep, markFrequent, addInitFrequent}, 2);