我有一个我分配给QChartView的QChart。在我一直关注的示例中,在main.cpp中显示为:
window.setCentralWidget(chartView);
在我的项目中,我想利用设计器,因此创建了一个自定义小部件,但它没有显示QChart。我找到了一个例子,他们指定他们将视图分配给布局,然后设置布局,如下:
mainLayout = new QGridLayout;
mainLayout->addWidget(chartView, 0, 0);
setLayout(mainLayout);
但这似乎弄乱了窗口中所有其他小部件的布局。如何让Custom Widget显示我的chartView?
谢谢!
答案 0 :(得分:3)
我让这个类继承自QChartView(继承了QWidget)而不是QWidget,然后做了:
setChart(myChart);
感谢。
答案 1 :(得分:3)
这就是我做到的。
在你的.h文件中:
SELECT articles.articleID FROM articles, article-tag-link, tags WHERE articles.articleID = article-tag-link.articleID AND tags.tagID = article-tag-link.tagID GROUP BY articles.articleID LIMIT 3;
在主构造函数的.cpp文件中:
QGridLayout* gridLayot;
QChart *chart;
QChartView *chartView;
任何时候你想要改变图表我都这样做:
MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow){
ui->setupUi(this);
ui->centralWidget = new QWidget(this);
this->setCentralWidget(ui->centralWidget);
chart = new QChart;
chartView = new QChartView(chart);
gridLayout = new QGridLayout(ui->centralWidget);
gridLayout->addWidget(chartView,0,0);