Как убрать маржу из QChartView или QChart
Кажется, что все диаграммы Qt имеют поле и закругленные углы.
Как убрать оба?
Я хочу, чтобы белая область заполнила весь диалог. Я не могу найти никакой информации в документации Qt. Я нашел скриншот одного примера, у которого нет этого интервала. Но я не могу найти код, который отключает его.
Мой код инициализации выглядит так:
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();
2 ответа
Решение
Devopia ответила на вопрос в комментариях!
В моем примере выше мне потребовались следующие 2 строки кода, чтобы полностью удалить красную часть:
chart->layout()->setContentsMargins(0, 0, 0, 0);
chart->setBackgroundRoundness(0);
На Qt 5.11 это не работает, потому что layout()
метод const
(наследуется от QGraphicsWidget
):
QGraphicsLayout *QGraphicsWidget::layout() const
Кроме того, невозможно взять копию этого, потому что QGraphicsLayout
это базовый класс.
Для меня это работает:
chart->setMargins(QMargins(0,0,0,0));