void testLegendSettings() { Legend* l = new Legend( m_lines, m_chart ); QVERIFY( l->position() == Position::NorthEast ); QVERIFY( l->alignment() == Qt::AlignCenter ); QVERIFY( l->orientation() == Qt::Vertical ); QVERIFY( l->showLines() == false ); QVERIFY( !l->titleText().isEmpty() ); QVERIFY( l->spacing() == 1 ); QVERIFY( l->legendStyle() == Legend::MarkersOnly ); l->setPosition( Position::North ); l->setAlignment( Qt::AlignLeft ); l->setOrientation( Qt::Horizontal ); l->setShowLines( true ); l->setTitleText( QString( tr( "Lines" ) ) ); l->setSpacing( 2 ); l->setLegendStyle( Legend::LinesOnly ); QVERIFY( l->position() == Position::North ); QVERIFY( l->alignment() == Qt::AlignLeft ); QVERIFY( l->orientation() == Qt::Horizontal ); QVERIFY( l->showLines() == true ); QVERIFY( l->titleText() == QString( tr( "Lines" ) ) ); QVERIFY( l->spacing() == 2 ); QVERIFY( l->legendStyle() == Legend::LinesOnly ); }
MainWindow::MainWindow( QWidget* parent ) : QWidget( parent ) { setupUi( this ); QHBoxLayout* chartLayout = new QHBoxLayout( chartFrame ); m_chart = new Chart(); m_chart->setGlobalLeading( 20, 20, 20, 20 ); chartLayout->addWidget( m_chart ); // Initialize the model, and fill it with data const int rowCount = 8; const int columnCount = 3; m_model = new QStandardItemModel(rowCount, columnCount, this); m_model->setHeaderData(0, Qt::Horizontal, tr("Product A")); m_model->setHeaderData(1, Qt::Horizontal, tr("Product B")); m_model->setHeaderData(2, Qt::Horizontal, tr("Product C")); openFile(":/Charts/qtdata.cht"); // Set up the diagram m_lines = new LineDiagram(); // Register the data model at the diagram m_lines->setModel( m_model ); // Add axes to the diagram CartesianAxis *xAxis = new CartesianAxis( m_lines ); CartesianAxis *yAxis = new CartesianAxis ( m_lines ); xAxis->setPosition ( KDChart::CartesianAxis::Bottom ); yAxis->setPosition ( KDChart::CartesianAxis::Left ); m_lines->addAxis( xAxis ); m_lines->addAxis( yAxis ); // Make the lines thicker for( int iColumn = 0; iColumn < columnCount; ++iColumn ){ QPen linePen( m_lines->pen( iColumn ) ); linePen.setWidth( 3 ); m_lines->setPen( iColumn, linePen ); } // Register the diagram at the coordinate plane m_chart->coordinatePlane()->replaceDiagram( m_lines ); // Add a legend Legend* legend = new Legend( m_lines, m_chart ); legend->setPosition( Position::South ); legend->setAlignment( Qt::AlignCenter ); legend->setShowLines( true ); legend->setTitleText(""); legend->setOrientation( Qt::Horizontal ); legend->addDiagram( m_lines ); m_chart->addLegend( legend ); }
int main( int argc, char** argv ) { QApplication app( argc, argv ); Widget widget; widget.resize( 600, 600 ); QVector< double > vec0, vec1, vec2; vec0 << 5 << 1 << 3 << 4 << 1; vec1 << 3 << 6 << 2 << 4 << 8; vec2 << 0 << 7 << 1 << 2 << 1; widget.setDataset( 0, vec0, "vec0" ); widget.setDataset( 1, vec1, "vec1" ); widget.setDataset( 2, vec2, "vec2" ); widget.setSubType( Widget::Percent ); //Configure a pen and draw a line //a dot line for column 1 QPen pen; QBrush brush; pen.setWidth(3); pen.setStyle( Qt::DotLine ); pen.setColor( Qt::yellow ); brush.setColor( Qt::yellow ); // call your diagram and set the new pen // and brush widget.lineDiagram()->setPen( 1 , pen ); widget.lineDiagram()->setBrush( 1, brush ); //set up a legend Legend* legend = new Legend( &widget ); legend->setPosition( Position::East ); legend->setAlignment( Qt::AlignCenter ); legend->setOrientation( Qt::Vertical ); legend->setLegendStyle( Legend::LinesOnly ); legend->setShowLines( true ); widget.addLegend( legend ); //Set up your Attributes //display areas LineAttributes la( widget.lineDiagram()->lineAttributes() ); la.setDisplayArea( true ); la.setTransparency( 25 ); widget.lineDiagram()->setLineAttributes( la ); widget.show(); return app.exec(); }