2017-02-26 38 views
1

this exampleに従ってQDialogウィンドウに折れ線グラフを作成しようとしています。Qt - QDialogウィンドウにQChartViewを表示

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

私はQWidgetのはwidget_chart私のUIファイルに追加呼んでいると水平レイアウト:私はこのラインでUIにそれを追加してい

window.setCentralWidget(chartView); 

:代わりにUIにグラフを追加します適用される。グラフは表示されていますが、非常に小さいです。私は、レイアウトを適用することによって、チャートがウィンドウの全幅を占めることが予想されました。また、ウィンドウのサイズを変更すると、動的にサイズが変更されます。

Screenshot of program

チャートはQWidgetのの全幅を占めるようにどのように私はそれを行うことができますか?私は同様の問題があった

#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; 
} 

答えて

-1

は、ここに私のdialog.cppファイルの完全なコードです。レイアウトを使って解決しました。あなたのQWidgetのレイアウトを作成し、addWidget機能を使用してQChartView追加:

your_layout->addWidget(chartView) 
0

ヴォイチェフPiątekによって答えは私のために働きました。限りとしてA_Noonanが懸念されますが、変更する必要がある唯一のものはここにあなたが何でもあなたにmain_layoutを変更する必要があり、あなたのUIファイルの主なレイアウトであるかを調べると、この

ui->main_layout->addWidget(chartView); 

ようにそれを参照することですレイアウト名はです。また、あなたは、このラインを持っている必要はありません。この方法をやって:

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

もう、代わりにあなたが定期的にいずれかを使用することができます。

QChartView *chartView = new QChartView(chart); 

また、ui_fileからwidget_chartを削除してください。 これ以外の方法はありません。

関連する問題