天天看點

Qt開發案例: 橫向條形統計圖

Qt是一個跨平台架構,通常用作圖形工具包,它不僅建立CLI應用程式中非常有用。而且它也可以在三種主要的桌上型電腦作業系統以及移動作業系統(如Symbian,Nokia Belle,Meego Harmattan,MeeGo或BB10)以及嵌入式裝置,Android(Necessitas)和iOS的端口上運作。現在我們為你提供了免費的試用版。

下載下傳Qt6最新試用版

Qt元件推薦:

  • QtitanRibbon| 下載下傳試用: 遵循Microsoft Ribbon UI Paradigm for Qt技術的Ribbon UI元件,緻力于為Windows、Linux和Mac OS X提供功能完整的Ribbon元件。
  • QtitanChart | 下載下傳試用 :是一個C ++庫,代表一組控件,這些控件使您可以快速地為應用程式提供漂亮而豐富的圖表。并且支援所有主要的桌面

該示例顯示了如何建立水準條形圖。

QHorizontalBarChart 将集合中的資料顯示為單獨的條形,這些條形按類别分組。QHorizontalBarChart 的工作方式與 QBarChart 類似,不同之處在于條形圖是在圖表上水準繪制的。

Qt開發案例: 橫向條形統計圖

運作示例

要從Qt Creator運作示例,請打開歡迎模式并從示例中選擇示例。有關更多資訊,請通路建構和運作示例。

建立水準條形圖

條形集在所有條形圖中的使用方式相同。為了說明各種條形圖之間的差異,我們在所有示例中使用相同的資料。條形圖可視化的資料由QBarSet執行個體定義。在這裡,我們建立集合并将資料附加到它們。資料在此處附加 << 運算符。或者,也可以使用 append 方法。

QBarSet  * set0 =  new  QBarSet ( "Jane" );
    QBarSet  * set1 =  new  QBarSet ( "John" );
    QBarSet  * set2 =  new  QBarSet ( "Axel" );
    QBarSet  * set3 =  new  QBarSet ( "Mary" );
    QBarSet  * set4 =  new  QBarSet ( "薩曼莎" );

    * set0 < <  1  < <  2  < <  3  < <  4  < <  5  < <  6 ;
    * set1 < <  5  < <  0  < <  0  < <  4  < <  0  < <  7 ;
    * set2 < <  3  < <  5  < <  8  < <  13  <  < <  5 ;
    * set3 < <  5  < <  6  < <  7  < <  3  < <  4  < <  5 ;
    * set4 < <  9  < <  7  < <  5  < <  3  < <  1  < <  2 ;      

我們建立系列并将條形集附加到它。該系列擁有 barsets 的所有權。該系列将資料從集合分組到類别。每個集合的第一個值被組合在第一個類别中;第二個類别中的第二個值,依此類推。

QHorizontalBarSeries *series = new QHorizontalBarSeries();
    series->append(set0);
    series->append(set1);
    series->append(set2);
    series->append(set3);
    series->append(set4);      

在這裡,我們建立圖表對象并向其添加系列。我們使用 setTitle 設定圖表的标題,然後通過調用 setAnimationOptions( QChart::SeriesAnimations )打開系列的動畫。

QChart *chart = new QChart();
    chart->addSeries(series);
    chart->setTitle("Simple horizontal barchart example");
    chart->setAnimationOptions(QChart::SeriesAnimations);      

要在軸上顯示類别,我們需要為此建立一個QBarCategoryAxis。在這裡,我們建立了一個帶有類别清單的類别軸,并将其設定為與左側對齊,充當 y 軸,并将其附加到系列中。圖表擁有軸的所有權。對于 x 軸,我們使用值軸,與底部對齊。

QStringList categories;;
    categories << "Jan" << "Feb" << "Mar" << "Apr" << "May" << "Jun";
    
    QBarCategoryAxis *axisY = new QBarCategoryAxis();
    axisY->append(categories);(categories);
    chart->addAxis(axisY(axisY, Qt::AlignLeft););
    series->attachAxis(axisY);
    (axisY);
    QValueAxis *axisX = new QValueAxis();
    chart->addAxis(axisX(axisX, Qt::AlignBottom););
    series->attachAxis(axisX);(axisX);
    axisX->applyNiceNumbers();();      

我們也想展示傳奇。為此,我們從圖表中擷取圖例指針并将其設定為可見。我們還通過将其對齊設定為Qt::AlignBottom将圖例放置在圖表的底部。

chart->legend()()->setVisible((true);
    chart->legend()()->setAlignment((Qt::AlignBottom););      

最後,我們将圖表添加到視圖中。我們還為圖表視圖打開了抗鋸齒功能。

QChartView *chartView = new QChartView(chart);chart);
    chartView->setRenderHint((QPainter::Antialiasing););      

圖表已準備好顯示。我們将圖表設定為視窗的中央小部件。我們還設定圖表視窗的大小并顯示它。

QMainWindow window;;
    window.setCentralWidget(chartView);(chartView);
    window.resize((420, 300);
    window.show();();      

====================================================

Qt技術交流群現已開通,QQ搜尋群号“765444821”或者掃描下方二維碼即可加入

Qt開發案例: 橫向條形統計圖

繼續閱讀