cpupiemarker.cpp
来自「qt4.3.2 ,red hat9中d动态调用cpu的程序」· C++ 代码 · 共 58 行
CPP
58 行
#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; } }}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?