📄 qwt__dial__needle_8cpp-source.html
字号:
<a name="l00370"></a>00370 painter->restore();<a name="l00371"></a>00371 }<a name="l00372"></a>00372 <a name="l00383"></a><a class="code" href="class_qwt_compass_magnet_needle.html#786b21adb5d427b35be554eeafcce06c">00383</a> <span class="keywordtype">void</span> <a class="code" href="class_qwt_compass_magnet_needle.html#786b21adb5d427b35be554eeafcce06c">QwtCompassMagnetNeedle::drawThinNeedle</a>(QPainter *painter, <a name="l00384"></a>00384 <span class="keyword">const</span> QPalette &palette, QPalette::ColorGroup colorGroup,<a name="l00385"></a>00385 <span class="keyword">const</span> QPoint &center, <span class="keywordtype">int</span> length, <span class="keywordtype">double</span> direction) <a name="l00386"></a>00386 {<a name="l00387"></a>00387 <span class="keyword">const</span> QBrush darkBrush = palette.brush(colorGroup, QwtPalette::Dark);<a name="l00388"></a>00388 <span class="keyword">const</span> QBrush lightBrush = palette.brush(colorGroup, QwtPalette::Light);<a name="l00389"></a>00389 <span class="keyword">const</span> QBrush baseBrush = palette.brush(colorGroup, QwtPalette::Base);<a name="l00390"></a>00390 <a name="l00391"></a>00391 <span class="keyword">const</span> <span class="keywordtype">int</span> colorOffset = 10;<a name="l00392"></a>00392 <span class="keyword">const</span> <span class="keywordtype">int</span> width = qwtMax(qRound(length / 6.0), 3);<a name="l00393"></a>00393 <a name="l00394"></a>00394 painter->save();<a name="l00395"></a>00395 <a name="l00396"></a>00396 <span class="keyword">const</span> QPoint arrowCenter(center.x() + 1, center.y() + 1);<a name="l00397"></a>00397 <a name="l00398"></a>00398 <a class="code" href="class_qwt_compass_magnet_needle.html#d8ca9ebf795e69c1058b00f1c00c5963">drawPointer</a>(painter, darkBrush, colorOffset, <a name="l00399"></a>00399 arrowCenter, length, width, direction);<a name="l00400"></a>00400 <a class="code" href="class_qwt_compass_magnet_needle.html#d8ca9ebf795e69c1058b00f1c00c5963">drawPointer</a>(painter, lightBrush, -colorOffset, <a name="l00401"></a>00401 arrowCenter, length, width, direction + 180.0);<a name="l00402"></a>00402 <a name="l00403"></a>00403 <a class="code" href="class_qwt_dial_needle.html#5ff7738a4ce55551b0949a55b145662f">drawKnob</a>(painter, arrowCenter, width, baseBrush, <span class="keyword">true</span>);<a name="l00404"></a>00404 <a name="l00405"></a>00405 painter->restore();<a name="l00406"></a>00406 }<a name="l00407"></a>00407 <a name="l00419"></a><a class="code" href="class_qwt_compass_magnet_needle.html#d8ca9ebf795e69c1058b00f1c00c5963">00419</a> <span class="keywordtype">void</span> <a class="code" href="class_qwt_compass_magnet_needle.html#d8ca9ebf795e69c1058b00f1c00c5963">QwtCompassMagnetNeedle::drawPointer</a>(<a name="l00420"></a>00420 QPainter *painter, <span class="keyword">const</span> QBrush &brush,<a name="l00421"></a>00421 <span class="keywordtype">int</span> colorOffset, <span class="keyword">const</span> QPoint &center, <span class="keywordtype">int</span> length, <a name="l00422"></a>00422 <span class="keywordtype">int</span> width, <span class="keywordtype">double</span> direction)<a name="l00423"></a>00423 {<a name="l00424"></a>00424 painter->save();<a name="l00425"></a>00425 <a name="l00426"></a>00426 <span class="keyword">const</span> <span class="keywordtype">int</span> peak = qwtMax(qRound(length / 10.0), 5);<a name="l00427"></a>00427 <a name="l00428"></a>00428 <span class="keyword">const</span> <span class="keywordtype">int</span> knobWidth = width + 8;<a name="l00429"></a>00429 QRect knobRect(0, 0, knobWidth, knobWidth);<a name="l00430"></a>00430 knobRect.moveCenter(center);<a name="l00431"></a>00431 <a name="l00432"></a>00432 QwtPolygon pa(5);<a name="l00433"></a>00433 <a name="l00434"></a>00434 pa.setPoint(0, qwtDegree2Pos(center, width / 2, direction + 90.0));<a name="l00435"></a>00435 pa.setPoint(1, center);<a name="l00436"></a>00436 pa.setPoint(2, qwtDegree2Pos(pa.point(1), length - peak, direction));<a name="l00437"></a>00437 pa.setPoint(3, qwtDegree2Pos(center, length, direction));<a name="l00438"></a>00438 pa.setPoint(4, qwtDegree2Pos(pa.point(0), length - peak, direction));<a name="l00439"></a>00439 <a name="l00440"></a>00440 painter->setPen(Qt::NoPen);<a name="l00441"></a>00441 <a name="l00442"></a>00442 QBrush darkBrush = brush;<a name="l00443"></a>00443 darkBrush.setColor(darkBrush.color().dark(100 + colorOffset));<a name="l00444"></a>00444 painter->setBrush(darkBrush);<a name="l00445"></a>00445 painter->drawPolygon(pa);<a name="l00446"></a>00446 painter->drawPie(knobRect, qRound(direction * 16), 90 * 16);<a name="l00447"></a>00447 <a name="l00448"></a>00448 pa.setPoint(0, qwtDegree2Pos(center, width / 2, direction - 90.0));<a name="l00449"></a>00449 pa.setPoint(4, qwtDegree2Pos(pa.point(0), length - peak, direction));<a name="l00450"></a>00450 <a name="l00451"></a>00451 QBrush lightBrush = brush;<a name="l00452"></a>00452 lightBrush.setColor(lightBrush.color().dark(100 - colorOffset));<a name="l00453"></a>00453 painter->setBrush(lightBrush);<a name="l00454"></a>00454 painter->drawPolygon(pa);<a name="l00455"></a>00455 painter->drawPie(knobRect, qRound(direction * 16), -90 * 16);<a name="l00456"></a>00456 <a name="l00457"></a>00457 painter->restore();<a name="l00458"></a>00458 }<a name="l00459"></a>00459 <a name="l00467"></a><a class="code" href="class_qwt_compass_wind_arrow.html#1b5931f43dd7e72fc5a3e2c9b509769d">00467</a> <a class="code" href="class_qwt_compass_wind_arrow.html#1b5931f43dd7e72fc5a3e2c9b509769d">QwtCompassWindArrow::QwtCompassWindArrow</a>(<a class="code" href="class_qwt_compass_wind_arrow.html#55f11e28c9d87c0fb7c306ccd174f2a8">Style</a> style, <a name="l00468"></a>00468 <span class="keyword">const</span> QColor &light, <span class="keyword">const</span> QColor &dark):<a name="l00469"></a>00469 d_style(style)<a name="l00470"></a>00470 {<a name="l00471"></a>00471 QPalette <a class="code" href="class_qwt_dial_needle.html#8b3c915032389261e07cc983b433166c">palette</a>;<a name="l00472"></a>00472 <span class="keywordflow">for</span> ( <span class="keywordtype">int</span> i = 0; i < QPalette::NColorGroups; i++ )<a name="l00473"></a>00473 {<a name="l00474"></a>00474 palette.setColor((QPalette::ColorGroup)i,<a name="l00475"></a>00475 QwtPalette::Light, light);<a name="l00476"></a>00476 palette.setColor((QPalette::ColorGroup)i,<a name="l00477"></a>00477 QwtPalette::Dark, dark);<a name="l00478"></a>00478 }<a name="l00479"></a>00479 <a name="l00480"></a>00480 setPalette(palette);<a name="l00481"></a>00481 }<a name="l00482"></a>00482 <a name="l00492"></a><a class="code" href="class_qwt_compass_wind_arrow.html#a3a2d79d2934205501a92a9c198e3d8a">00492</a> <span class="keywordtype">void</span> <a class="code" href="class_qwt_compass_wind_arrow.html#a3a2d79d2934205501a92a9c198e3d8a">QwtCompassWindArrow::draw</a>(QPainter *painter, <span class="keyword">const</span> QPoint &center,<a name="l00493"></a>00493 <span class="keywordtype">int</span> length, <span class="keywordtype">double</span> direction, QPalette::ColorGroup colorGroup)<span class="keyword"> const</span><a name="l00494"></a>00494 <span class="keyword"></span>{<a name="l00495"></a>00495 <span class="keywordflow">if</span> ( d_style == Style1 )<a name="l00496"></a>00496 {<a name="l00497"></a>00497 <a class="code" href="class_qwt_compass_wind_arrow.html#7a018acb636eec2c3f2d4793c0bfa033">drawStyle1Needle</a>(painter, <a class="code" href="class_qwt_dial_needle.html#8b3c915032389261e07cc983b433166c">palette</a>(), colorGroup,<a name="l00498"></a>00498 center, length, direction);<a name="l00499"></a>00499 }<a name="l00500"></a>00500 <span class="keywordflow">else</span><a name="l00501"></a>00501 {<a name="l00502"></a>00502 <a class="code" href="class_qwt_compass_wind_arrow.html#c326fcaae96d7752c48152e5d7260f62">drawStyle2Needle</a>(painter, <a class="code" href="class_qwt_dial_needle.html#8b3c915032389261e07cc983b433166c">palette</a>(), colorGroup,<a name="l00503"></a>00503 center, length, direction); <a name="l00504"></a>00504 }<a name="l00505"></a>00505 }<a name="l00506"></a>00506 <a name="l00517"></a><a class="code" href="class_qwt_compass_wind_arrow.html#7a018acb636eec2c3f2d4793c0bfa033">00517</a> <span class="keywordtype">void</span> <a class="code" href="class_qwt_compass_wind_arrow.html#7a018acb636eec2c3f2d4793c0bfa033">QwtCompassWindArrow::drawStyle1Needle</a>(QPainter *painter, <a name="l00518"></a>00518 <span class="keyword">const</span> QPalette &palette, QPalette::ColorGroup colorGroup,<a name="l00519"></a>00519 <span class="keyword">const</span> QPoint &center, <span class="keywordtype">int</span> length, <span class="keywordtype">double</span> direction) <a name="l00520"></a>00520 {<a name="l00521"></a>00521 <span class="keyword">const</span> QBrush lightBrush = palette.brush(colorGroup, QwtPalette::Light);<a name="l00522"></a>00522 <a name="l00523"></a>00523 <span class="keyword">const</span> <span class="keywordtype">double</span> AR1[] = {0, 0.4, 0.3, 1, 0.8, 1, 0.3, 0.4};<a name="l00524"></a>00524 <span class="keyword">const</span> <span class="keywordtype">double</span> AW1[] = {0, -45, -20, -15, 0, 15, 20, 45};<a name="l00525"></a>00525 <a name="l00526"></a>00526 <span class="keyword">const</span> QPoint arrowCenter(center.x() + 1, center.y() + 1);<a name="l00527"></a>00527 <a name="l00528"></a>00528 QwtPolygon pa(8);<a name="l00529"></a>00529 pa.setPoint(0, arrowCenter);<a name="l00530"></a>00530 <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i=1; i<8; i++) <a name="l00531"></a>00531 {<a name="l00532"></a>00532 <span class="keyword">const</span> QPoint p = qwtDegree2Pos(center, <a name="l00533"></a>00533 AR1[i] * length, direction + AW1[i]);<a name="l00534"></a>00534 pa.setPoint(i, p);<a name="l00535"></a>00535 }<a name="l00536"></a>00536 <a name="l00537"></a>00537 painter->save();<a name="l00538"></a>00538 painter->setPen(Qt::NoPen);<a name="l00539"></a>00539 painter->setBrush(lightBrush);<a name="l00540"></a>00540 painter->drawPolygon(pa);<a name="l00541"></a>00541 painter->restore();<a name="l00542"></a>00542 }<a name="l00543"></a>00543 <a name="l00554"></a><a class="code" href="class_qwt_compass_wind_arrow.html#c326fcaae96d7752c48152e5d7260f62">00554</a> <span class="keywordtype">void</span> <a class="code" href="class_qwt_compass_wind_arrow.html#c326fcaae96d7752c48152e5d7260f62">QwtCompassWindArrow::drawStyle2Needle</a>(QPainter *painter, <a name="l00555"></a>00555 <span class="keyword">const</span> QPalette &palette, QPalette::ColorGroup colorGroup,<a name="l00556"></a>00556 <span class="keyword">const</span> QPoint &center, <span class="keywordtype">int</span> length, <span class="keywordtype">double</span> direction) <a name="l00557"></a>00557 {<a name="l00558"></a>00558 <span class="keyword">const</span> QBrush lightBrush = palette.brush(colorGroup, QwtPalette::Light);<a name="l00559"></a>00559 <span class="keyword">const</span> QBrush darkBrush = palette.brush(colorGroup, QwtPalette::Dark);<a name="l00560"></a>00560 <a name="l00561"></a>00561 painter->save();<a name="l00562"></a>00562 painter->setPen(Qt::NoPen);<a name="l00563"></a>00563 <a name="l00564"></a>00564 <span class="keyword">const</span> <span class="keywordtype">double</span> angle = 12.0;<a name="l00565"></a>00565 <span class="keyword">const</span> <span class="keywordtype">double</span> ratio = 0.7;<a name="l00566"></a>00566 <a name="l00567"></a>00567 <span class="keyword">const</span> QPoint arrowCenter(center.x() + 1, center.y() + 1);<a name="l00568"></a>00568 <a name="l00569"></a>00569 QwtPolygon pa(3);<a name="l00570"></a>00570 <a name="l00571"></a>00571 pa.setPoint(0, center);<a name="l00572"></a>00572 pa.setPoint(2, qwtDegree2Pos(arrowCenter, ratio * length, direction));<a name="l00573"></a>00573 <a name="l00574"></a>00574 pa.setPoint(1, qwtDegree2Pos(arrowCenter, length, direction + angle));<a name="l00575"></a>00575 painter->setBrush(darkBrush);<a name="l00576"></a>00576 painter->drawPolygon(pa);<a name="l00577"></a>00577 <a name="l00578"></a>00578 pa.setPoint(1, qwtDegree2Pos(arrowCenter, length, direction - angle));<a name="l00579"></a>00579 painter->setBrush(lightBrush);<a name="l00580"></a>00580 painter->drawPolygon(pa);<a name="l00581"></a>00581 <a name="l00582"></a>00582 painter->restore();<a name="l00583"></a>00583 }<a name="l00584"></a>00584 </pre></div><hr size="1"><address style="align: right;"><small>Generated on Mon Feb 26 21:22:36 2007 for Qwt User's Guide by <a href="http://www.doxygen.org/index.html"><img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.6 </small></address></body></html>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -