?? cpupiemarker.cpp
字號:
#include <qpainter.h>#include <qwt_scale_map.h>#include <qwt_plot_curve.h>#include "cpuplot.h"#include "cpupiemarker.h"CpuPieMarker::CpuPieMarker(){ setZ(1000);#if QT_VERSION >= 0x040000 setRenderHint(QwtPlotItem::RenderAntialiased, true);#endif}int CpuPieMarker::rtti() const{ return QwtPlotItem::Rtti_PlotUserItem;}void CpuPieMarker::draw(QPainter *p, const QwtScaleMap &, const QwtScaleMap &, const QRect &rect) const{ const CpuPlot *cpuPlot = (CpuPlot *)plot(); const QwtScaleMap yMap = cpuPlot->canvasMap(QwtPlot::yLeft); const int margin = 5; QRect pieRect; pieRect.setX(rect.x() + margin); pieRect.setY(rect.y() + margin); pieRect.setHeight(yMap.transform(80.0)); pieRect.setWidth(pieRect.height()); const int dataType[] = { CpuPlot::User, CpuPlot::System, CpuPlot::Idle }; int angle = (int)(5760 * 0.75); for ( unsigned int i = 0; i < sizeof(dataType) / sizeof(dataType[0]); i++ ) { const QwtPlotCurve *curve = cpuPlot->cpuCurve(dataType[i]); if ( curve->dataSize() > 0 ) { const int value = (int)(5760 * curve->y(0) / 100.0); p->save(); p->setBrush(QBrush(curve->pen().color(), Qt::SolidPattern)); if ( value != 0 ) p->drawPie(pieRect, -angle, -value); p->restore(); angle += value; } }}
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -