Как убрать маржу из 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));
Другие вопросы по тегам