2016-08-25 14 views
6

Wydaje się, że wszystkie Qt Charts mają margines i zaokrąglone rogi.Jak usunąć margines z QChartView lub QChart

Example image with red marked border

Jak usunąć oba?

Chcę, aby biały obszar wypełniał całe okno dialogowe. Nie mogę znaleźć żadnych informacji w dokumentacji Qt. Znalazłem zrzut ekranu one Example, który nie ma tego odstępu. Ale nie mogę znaleźć kodu, który to wyłącza.

Mój kod inicjujący wygląda następująco:

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(); 
+0

jest czerwona część 'QChartView' lub część' QChart'? Możesz spróbować albo 'ui> pieChartView-> setBackgroundBrush (Qt :: white)' lub 'm_pieChart-> setMargins (QMargins())'. –

+2

Powinieneś zrobić coś takiego: 'm_pieChart-> layout() -> setContentsMargins (0, 0, 0, 0);' – Devopia

+0

@Devopia: 'm_pieChart' jest teraz' chart' w tym przykładzie. Twój kod działa! Ale wciąż mam zaokrąglone granice. Jeśli wiesz również, jak je usunąć, zaakceptowałbym twoją odpowiedź (jeśli ją napiszesz). –

Odpowiedz

8

Devopia answerd pytanie w komentarzach!

W moim przykładzie powyżej potrzebowałem następujące 2 linie kodu w celu usunięcia czerwona część całkowicie:

chart->layout()->setContentsMargins(0, 0, 0, 0); 
chart->setBackgroundRoundness(0); 
+0

Zwykłem wykonywać wszelkiego rodzaju omijań i objazdów, aby pozbyć się tego marginesu. Niezłe! – karlphillip