如何从 QChartView 或 QChart 中删除保证金
How to remove margin from QChartView or QChart
所有Qt Charts似乎都有边距和圆角。
如何同时删除两者?
我想让白色区域填满整个对话框。我在 Qt 文档中找不到任何信息。我找到了没有这个间距的 one Example 的截图。但是我找不到禁用它的代码。
我的初始化代码如下所示:
QPieSeries *series = new QPieSeries();
series->append("Jane", 1);
series->append("Joe", 2);
series->append("Andy", 3);
series->append("Barbara", 4);
series->append("Axel", 5);
QChart *chart = new QChart();
chart->addSeries(series);
QChartView *chartView = new QChartView(chart);
chartView->setBackgroundBrush(Qt::red);
chartView->setRenderHint(QPainter::Antialiasing);
QMainWindow window;
window.setCentralWidget(chartView);
window.resize(400, 300);
window.show();
Devopia在评论中回答问题!
在我上面的示例中,我需要以下两行代码来完全删除红色部分:
chart->layout()->setContentsMargins(0, 0, 0, 0);
chart->setBackgroundRoundness(0);
在 Qt 5.11 这不起作用,因为 layout()
方法 const
(继承自 QGraphicsWidget
):
QGraphicsLayout *QGraphicsWidget::layout() const
此外,不可能复制它,因为 QGraphicsLayout
是基数 class。
对我来说这很有效:
chart->setMargins(QMargins(0,0,0,0));
所有Qt Charts似乎都有边距和圆角。
如何同时删除两者?
我想让白色区域填满整个对话框。我在 Qt 文档中找不到任何信息。我找到了没有这个间距的 one Example 的截图。但是我找不到禁用它的代码。
我的初始化代码如下所示:
QPieSeries *series = new QPieSeries();
series->append("Jane", 1);
series->append("Joe", 2);
series->append("Andy", 3);
series->append("Barbara", 4);
series->append("Axel", 5);
QChart *chart = new QChart();
chart->addSeries(series);
QChartView *chartView = new QChartView(chart);
chartView->setBackgroundBrush(Qt::red);
chartView->setRenderHint(QPainter::Antialiasing);
QMainWindow window;
window.setCentralWidget(chartView);
window.resize(400, 300);
window.show();
Devopia在评论中回答问题!
在我上面的示例中,我需要以下两行代码来完全删除红色部分:
chart->layout()->setContentsMargins(0, 0, 0, 0);
chart->setBackgroundRoundness(0);
在 Qt 5.11 这不起作用,因为 layout()
方法 const
(继承自 QGraphicsWidget
):
QGraphicsLayout *QGraphicsWidget::layout() const
此外,不可能复制它,因为 QGraphicsLayout
是基数 class。
对我来说这很有效:
chart->setMargins(QMargins(0,0,0,0));