2021-12-08 09:44:30 +00:00
|
|
|
|
#pragma execution_character_set("utf-8")
|
|
|
|
|
|
|
|
|
|
#include "frmmain.h"
|
|
|
|
|
#include "ui_frmmain.h"
|
|
|
|
|
#include "iconhelper.h"
|
|
|
|
|
#include "qdebug.h"
|
|
|
|
|
|
|
|
|
|
#include "frmquadratic.h"
|
|
|
|
|
#include "frmsimple.h"
|
|
|
|
|
#include "frmsincscatter.h"
|
|
|
|
|
#include "frmscatterstyle.h"
|
|
|
|
|
#include "frmscatterpixmap.h"
|
|
|
|
|
#include "frmlinestyle.h"
|
|
|
|
|
#include "frmdate.h"
|
|
|
|
|
#include "frmtexturebrush.h"
|
|
|
|
|
#include "frmmultiaxis.h"
|
|
|
|
|
#include "frmlogarithmic.h"
|
|
|
|
|
#include "frmrealtimedata.h"
|
|
|
|
|
#include "frmparametriccurve.h"
|
|
|
|
|
#include "frmbarchart.h"
|
|
|
|
|
#include "frmstatistical.h"
|
|
|
|
|
#include "frmsimpleitem.h"
|
|
|
|
|
#include "frmitem.h"
|
|
|
|
|
#include "frmstyled.h"
|
|
|
|
|
#include "frmadvancedaxes.h"
|
|
|
|
|
#include "frmcolormap.h"
|
|
|
|
|
#include "frmfinancial.h"
|
|
|
|
|
#include "frmpolarplot.h"
|
2021-12-10 12:23:28 +00:00
|
|
|
|
|
|
|
|
|
#include "frmaxistag.h"
|
|
|
|
|
#include "frminteraction.h"
|
|
|
|
|
#include "frmscrollbar.h"
|
|
|
|
|
#include "frmmultiaxes.h"
|
2022-05-16 04:41:17 +00:00
|
|
|
|
#include "frmmultiplot.h"
|
2021-12-08 09:44:30 +00:00
|
|
|
|
|
|
|
|
|
frmMain::frmMain(QWidget *parent) : QWidget(parent), ui(new Ui::frmMain)
|
|
|
|
|
{
|
|
|
|
|
ui->setupUi(this);
|
|
|
|
|
this->initForm();
|
|
|
|
|
this->initWidget();
|
|
|
|
|
this->initNav();
|
|
|
|
|
this->initIcon();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
frmMain::~frmMain()
|
|
|
|
|
{
|
|
|
|
|
delete ui;
|
|
|
|
|
}
|
|
|
|
|
|
2021-12-10 12:23:28 +00:00
|
|
|
|
void frmMain::showEvent(QShowEvent *)
|
|
|
|
|
{
|
|
|
|
|
//滚动到底部
|
|
|
|
|
QScrollBar *bar = ui->scrollArea->verticalScrollBar();
|
|
|
|
|
bar->setValue(bar->maximum());
|
|
|
|
|
}
|
|
|
|
|
|
2021-12-08 09:44:30 +00:00
|
|
|
|
void frmMain::initForm()
|
|
|
|
|
{
|
|
|
|
|
ui->scrollArea->setFixedWidth(170);
|
|
|
|
|
ui->widgetLeft->setProperty("flag", "left");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void frmMain::initWidget()
|
|
|
|
|
{
|
|
|
|
|
//ui->customPlot->setInteractions(QCP::iRangeDrag | QCP::iRangeZoom);
|
|
|
|
|
ui->stackedWidget->addWidget(new frmQuadratic);
|
|
|
|
|
ui->stackedWidget->addWidget(new frmSimple);
|
|
|
|
|
ui->stackedWidget->addWidget(new frmSincScatter);
|
|
|
|
|
ui->stackedWidget->addWidget(new frmScatterStyle);
|
|
|
|
|
ui->stackedWidget->addWidget(new frmScatterPixmap);
|
|
|
|
|
ui->stackedWidget->addWidget(new frmLineStyle);
|
|
|
|
|
ui->stackedWidget->addWidget(new frmDate);
|
|
|
|
|
ui->stackedWidget->addWidget(new frmTextureBrush);
|
|
|
|
|
ui->stackedWidget->addWidget(new frmMultiAxis);
|
|
|
|
|
ui->stackedWidget->addWidget(new frmLogarithmic);
|
|
|
|
|
ui->stackedWidget->addWidget(new frmRealtimeData);
|
|
|
|
|
ui->stackedWidget->addWidget(new frmParametricCurve);
|
|
|
|
|
ui->stackedWidget->addWidget(new frmBarChart);
|
|
|
|
|
ui->stackedWidget->addWidget(new frmStatistical);
|
|
|
|
|
ui->stackedWidget->addWidget(new frmSimpleItem);
|
|
|
|
|
ui->stackedWidget->addWidget(new frmItem);
|
|
|
|
|
ui->stackedWidget->addWidget(new frmStyled);
|
|
|
|
|
ui->stackedWidget->addWidget(new frmAdvancedAxes);
|
|
|
|
|
ui->stackedWidget->addWidget(new frmColorMap);
|
|
|
|
|
ui->stackedWidget->addWidget(new frmFinancial);
|
|
|
|
|
ui->stackedWidget->addWidget(new frmPolarPlot);
|
2021-12-10 12:23:28 +00:00
|
|
|
|
ui->stackedWidget->addWidget(new frmAxisTag);
|
|
|
|
|
ui->stackedWidget->addWidget(new frmInterAction);
|
|
|
|
|
ui->stackedWidget->addWidget(new frmScrollBar);
|
|
|
|
|
ui->stackedWidget->addWidget(new frmMultiAxes);
|
2022-05-16 04:41:17 +00:00
|
|
|
|
ui->stackedWidget->addWidget(new frmMultiPlot);
|
2021-12-08 09:44:30 +00:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void frmMain::initNav()
|
|
|
|
|
{
|
|
|
|
|
//按钮文字集合
|
|
|
|
|
QStringList names;
|
|
|
|
|
names << "平方二次元" << "简单曲线图" << "正弦散点图" << "数据点样式" << "数据点图片"
|
|
|
|
|
<< "曲线条样式" << "日期数据图" << "纹理画刷图" << "双坐标曲线" << "对数曲线图"
|
|
|
|
|
<< "动态正弦图" << "环形曲线图" << "垂直柱状图" << "箱形盒须图" << "静态指示线"
|
|
|
|
|
<< "动态指示线" << "曲线样式图" << "高级坐标轴" << "颜色热力图" << "金融曲线图"
|
2022-05-16 04:41:17 +00:00
|
|
|
|
<< "南丁格尔图" << "坐标轴指示" << "相互作用图" << "滚动条曲线" << "多坐标轴图"
|
|
|
|
|
<< "多轴多曲线";
|
2021-12-08 09:44:30 +00:00
|
|
|
|
|
|
|
|
|
//自动生成按钮
|
|
|
|
|
for (int i = 0; i < names.count(); i++) {
|
|
|
|
|
QToolButton *btn = new QToolButton;
|
|
|
|
|
//设置按钮固定高度
|
|
|
|
|
btn->setFixedHeight(35);
|
|
|
|
|
//设置按钮的文字
|
|
|
|
|
btn->setText(QString("%1. %2").arg(i + 1, 2, 10, QChar('0')).arg(names.at(i)));
|
|
|
|
|
//设置按钮可选中按下类似复选框的功能
|
|
|
|
|
btn->setCheckable(true);
|
|
|
|
|
//设置按钮图标在左侧文字在右侧
|
|
|
|
|
btn->setToolButtonStyle(Qt::ToolButtonTextBesideIcon);
|
|
|
|
|
//设置按钮拉伸策略为横向填充
|
|
|
|
|
btn->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Preferred);
|
|
|
|
|
//关联按钮单击事件
|
|
|
|
|
connect(btn, SIGNAL(clicked(bool)), this, SLOT(buttonClicked()));
|
|
|
|
|
//将按钮加入到布局
|
|
|
|
|
ui->widgetLeft->layout()->addWidget(btn);
|
|
|
|
|
//可以指定不同的图标
|
|
|
|
|
icons << 0xf061;
|
|
|
|
|
btns << btn;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//底部加个弹簧
|
|
|
|
|
QSpacerItem *verticalSpacer = new QSpacerItem(20, 40, QSizePolicy::Minimum, QSizePolicy::Expanding);
|
|
|
|
|
ui->widgetLeft->layout()->addItem(verticalSpacer);
|
|
|
|
|
btns.at(names.count() - 1)->click();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void frmMain::initIcon()
|
|
|
|
|
{
|
|
|
|
|
//左侧导航样式,可以设置各种牛逼的参数,超级棒
|
|
|
|
|
IconHelper::StyleColor styleColor;
|
|
|
|
|
styleColor.defaultBorder = true;
|
|
|
|
|
IconHelper::setStyle(ui->widgetLeft, btns, icons, styleColor);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void frmMain::buttonClicked()
|
|
|
|
|
{
|
|
|
|
|
QAbstractButton *b = (QAbstractButton *)sender();
|
|
|
|
|
int count = btns.count();
|
|
|
|
|
int index = btns.indexOf(b);
|
|
|
|
|
ui->stackedWidget->setCurrentIndex(index);
|
|
|
|
|
|
|
|
|
|
for (int i = 0; i < count; i++) {
|
|
|
|
|
QAbstractButton *btn = btns.at(i);
|
|
|
|
|
btn->setChecked(btn == b);
|
|
|
|
|
}
|
|
|
|
|
}
|