QT开发中文网

同一个坐标系显示多个曲线吗 用下拉菜单显示

是的,您可以在同一个坐标系中显示多个曲线,并使用下拉菜单切换显示不同的曲线。

以下是一些示例代码,用于创建一个基于 Qt Charts 的应用程序,在同一个坐标系中显示多个曲线,并使用下拉菜单切换曲线:

#include <QtWidgets/QApplication>
#include <QtWidgets/QMainWindow>
#include <QtCharts/QChartView>
#include <QtCharts/QLineSeries>
#include <QtWidgets/QComboBox>

QT_CHARTS_USE_NAMESPACE

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);

    // 创建主窗口和布局
    QMainWindow window;
    QWidget* centralWidget = new QWidget(&window);
    QVBoxLayout* layout = new QVBoxLayout(centralWidget);

    // 创建图表视图和图表对象
    QChartView* chartView = new QChartView(centralWidget);
    QChart* chart = chartView->chart();
    chart->setTitle("Multiple Line Series");

    // 创建下拉菜单并添加选项
    QComboBox* comboBox = new QComboBox(centralWidget);
    comboBox->addItem("Line Series 1");
    comboBox->addItem("Line Series 2");

    // 添加组件到布局中
    layout->addWidget(chartView);
    layout->addWidget(comboBox);

    // 创建两个线性数据系列并添加到图表对象中
    QLineSeries* series1 = new QLineSeries();
    series1->setName("Line Series 1");
    
	// 向 series1 添加数据点,这里为了演示方便直接设置了固定值
	series1->append(0, 1);
	series1->append(1, 2);
	series1->append(2, 3);
	
    chart->addSeries(series1);

    QLineSeries* series2 = new QLineSeries();
    series2->setName("Line Series 2");
    
	// 向 series2 添加数据点,这里为了演示方便直接设置了固定值
	series2->append(0, 3);
	series2->append(1, 4);
	series2->append(2, 5);

    chart->addSeries(series2);

    // 设置坐标轴范围
    chart->createDefaultAxes();

    // 连接下拉菜单的 currentIndexChanged() 信号,并根据所选项更新图表中显示的曲线
    QObject::connect(comboBox, static_cast<void(QComboBox::*)(int)>(&QComboBox::currentIndexChanged), [=](int index) {
        if (index == 0) {
            series1->setVisible(true);
            series2->setVisible(false);
        } else {
            series1->setVisible(false);
            series2->setVisible(true);
        }
    });

    // 显示主窗口
    window.setCentralWidget(centralWidget);
    window.resize(800, 600);
    window.show();

    return a.exec();
}

在上述代码中,我们首先创建了一个 QMainWindow 对象和一个 QVBoxLayout 布局对象。然后,我们创建了一个 QChartView 和一个 QChart 对象,并将其添加到布局中。

接下来,我们创建了一个 QComboBox 下拉菜单并添加两个选项(”Line Series 1” 和 “Line Series 2”)。然后,我们创建了两个 QLineSeries 线性数据系列并将其添加到 QChart 对象中。我们还连接了 QComboBox 的 currentIndexChanged() 信号,并根据所选项更新图表中显示的曲线。

最后,我们设置了坐标轴范围,并显示主窗口。

希望这可以帮助您解决问题。

本站部分文章来源于网络,版权归原作者所有,如有侵权请联系站长删除。
转载请注明出处:https://qt.0voice.com/?id=1795

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
游客 游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~

联系我们

在线咨询: 点击这里给我发消息

微信号:3007537140

上班时间: 10:30-22:30

关注我们
x

注册

已经有帐号?