gpt4 book ai didi

c++ - Qt - 在 QDialog 窗口中显示 ChartView

转载 作者:太空宇宙 更新时间:2023-11-04 14:29:55 28 4
gpt4 key购买 nike

我一直在关注this example尝试在 QDialog 窗口中创建折线图。而不是使用以下方法将图表添加到 UI:

window.setCentralWidget(chartView);

我用这一行将它添加到 UI 中:

QChartView *chartView = new QChartView(chart, ui->widget_chart);

我在我的 UI 文件中添加了一个名为 widget_chart 的 QWidget,并应用了水平布局。显示了图表,但它非常小。我本以为通过应用布局,图表会占据整个窗口的宽度。如果我调整窗口大小,它会动态调整大小。

Screenshot of program

我怎样才能让图表占据 QWidget 的整个宽度?

这是我的 dialog.cpp 文件的完整代码:

#include "dialog.h"
#include "ui_dialog.h"
#include <QtCharts>

Dialog::Dialog(QWidget *parent) :
QDialog(parent),
ui(new Ui::Dialog)
{
ui->setupUi(this);

QLineSeries *series = new QLineSeries();

series->append(0, 6);
series->append(2, 4);
series->append(3, 8);
series->append(7, 4);
series->append(10, 5);

QChart *chart = new QChart();
chart->legend()->hide();
chart->addSeries(series);
chart->createDefaultAxes();
chart->setTitle("Simple line chart example");

QChartView *chartView = new QChartView(chart, ui->widget_chart);
chartView->setRenderHint(QPainter::Antialiasing);

}

Dialog::~Dialog()
{
delete ui;
}

最佳答案

Wojciech Piątek 的回答对我有用。就 A_Noonan 而言,您唯一需要更改的是找出 ui 文件中的主要布局并像这样引用它

ui->main_layout->addWidget(chartView);

在这里您应该将ma​​in_layout 更改为您的布局名称。也这样做你不需要有这一行:

QChartView *chartView = new QChartView(chart, ui->widget_chart);

不再是,您可以使用常规的。

QChartView *chartView = new QChartView(chart);

还要确保从 ui_file 中删除 widget_chart。没有其他办法解决这个问题。

关于c++ - Qt - 在 QDialog 窗口中显示 ChartView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42473671/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com