2017-02-26 387 views
1

我一直在遵循this example嘗試在QDialog窗口中創建折線圖。而不是與添加圖表到UI:Qt - 在QDialog窗口中顯示QChartView

window.setCentralWidget(chartView); 

我就用這條線增加了UI:

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

我有一個QWidget叫widget_chart添加到我的UI文件和橫向佈局應用。圖表顯示,但非常小。我希望通過應用佈局,圖表將佔據窗口的整個寬度。而且,如果我調整窗口的大小,它會動態調整大小。

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

回答

-1

我有類似的問題。我使用佈局解決了它。您QWidget創建佈局,然後使用addWidget函數添加QChartView

your_layout->addWidget(chartView) 
0

通過沃伊切赫Piątek答案爲我工作。至於A_Noonan而言,你需要改變的唯一的事情是找出什麼是你的UI文件的主要佈局像這樣引用它

ui->main_layout->addWidget(chartView); 

在這裏,你應該改變main_layout到任何你佈局名稱是。也這樣做你不需要這條線:

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

了,而不是你可以使用正常的。

QChartView *chartView = new QChartView(chart); 

也確保從ui_file中刪除widget_chart。 沒有其他解決方法。