⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 qwt__wheel_8cpp-source.html

📁 QWT5.01用于Qt开发的二维图形库程序
💻 HTML
📖 第 1 页 / 共 4 页
字号:
<a name="l00484"></a>00484                 p-&gt;drawLine(l1, tickPos - 1 ,l2, tickPos - 1);  <a name="l00485"></a>00485                 p-&gt;setPen(light);<a name="l00486"></a>00486                 p-&gt;drawLine(l1, tickPos, l2, tickPos);  <a name="l00487"></a>00487             }<a name="l00488"></a>00488         }<a name="l00489"></a>00489     }<a name="l00490"></a>00490 }<a name="l00491"></a>00491 <a name="l00492"></a>00492 <a name="l00494"></a><a class="code" href="class_qwt_wheel.html#6bb116593e63e724059c894a6fc41097">00494</a> <span class="keywordtype">double</span> <a class="code" href="class_qwt_wheel.html#6bb116593e63e724059c894a6fc41097">QwtWheel::getValue</a>( <span class="keyword">const</span> QPoint &amp;p )<a name="l00495"></a>00495 {<a name="l00496"></a>00496     <span class="comment">// The reference position is arbitrary, but the</span><a name="l00497"></a>00497     <span class="comment">// sign of the offset is important</span><a name="l00498"></a>00498     <span class="keywordtype">int</span> w, dx;<a name="l00499"></a>00499     <span class="keywordflow">if</span> ( <a class="code" href="class_qwt_abstract_slider.html#4d2521b9c31ec64b71d8e1771b156d88">orientation</a>() == Qt::Vertical )<a name="l00500"></a>00500     {<a name="l00501"></a>00501         w = d_data-&gt;sliderRect.height();<a name="l00502"></a>00502         dx = d_data-&gt;sliderRect.y() - p.y();<a name="l00503"></a>00503     }<a name="l00504"></a>00504     <span class="keywordflow">else</span><a name="l00505"></a>00505     {<a name="l00506"></a>00506         w = d_data-&gt;sliderRect.width();<a name="l00507"></a>00507         dx = p.x() - d_data-&gt;sliderRect.x();<a name="l00508"></a>00508     }<a name="l00509"></a>00509 <a name="l00510"></a>00510     <span class="comment">// w pixels is an arc of viewAngle degrees,</span><a name="l00511"></a>00511     <span class="comment">// so we convert change in pixels to change in angle</span><a name="l00512"></a>00512     <span class="keyword">const</span> <span class="keywordtype">double</span> ang = dx * d_data-&gt;viewAngle / w;<a name="l00513"></a>00513 <a name="l00514"></a>00514     <span class="comment">// value range maps to totalAngle degrees,</span><a name="l00515"></a>00515     <span class="comment">// so convert the change in angle to a change in value</span><a name="l00516"></a>00516     <span class="keyword">const</span> <span class="keywordtype">double</span> val = ang * ( <a class="code" href="class_qwt_double_range.html#215275a1a8b4218a424ee8444c7fe409">maxValue</a>() - <a class="code" href="class_qwt_double_range.html#8b8650a6f8a96144d3af21207ee71637">minValue</a>() ) / d_data-&gt;totalAngle;<a name="l00517"></a>00517 <a name="l00518"></a>00518     <span class="comment">// Note, range clamping and rasterizing to step is automatically</span><a name="l00519"></a>00519     <span class="comment">// handled by QwtAbstractSlider, so we simply return the change in value</span><a name="l00520"></a>00520     <span class="keywordflow">return</span> val;<a name="l00521"></a>00521 }<a name="l00522"></a>00522 <a name="l00524"></a><a class="code" href="class_qwt_wheel.html#f4fda101be95e70803127cc94fc1e337">00524</a> <span class="keywordtype">void</span> <a class="code" href="class_qwt_wheel.html#f4fda101be95e70803127cc94fc1e337">QwtWheel::resizeEvent</a>(QResizeEvent *)<a name="l00525"></a>00525 {<a name="l00526"></a>00526     <a class="code" href="class_qwt_wheel.html#03a6adc4f6516143501c8114f164d47c">layoutWheel</a>( <span class="keyword">false</span> );<a name="l00527"></a>00527 }<a name="l00528"></a>00528 <a name="l00530"></a>00530 <span class="comment">//  the current rect and fonts.</span><a name="l00531"></a>00531 <span class="comment">//  \param update_geometry  notify the layout system and call update</span><a name="l00532"></a>00532 <span class="comment">//         to redraw the scale</span><a name="l00533"></a><a class="code" href="class_qwt_wheel.html#03a6adc4f6516143501c8114f164d47c">00533</a> <span class="keywordtype">void</span> <a class="code" href="class_qwt_wheel.html#03a6adc4f6516143501c8114f164d47c">QwtWheel::layoutWheel</a>( <span class="keywordtype">bool</span> update_geometry )<a name="l00534"></a>00534 {<a name="l00535"></a>00535     <span class="keyword">const</span> QRect r = this-&gt;rect();<a name="l00536"></a>00536     d_data-&gt;sliderRect.setRect(r.x() + d_data-&gt;borderWidth, r.y() + d_data-&gt;borderWidth,<a name="l00537"></a>00537         r.width() - 2*d_data-&gt;borderWidth, r.height() - 2*d_data-&gt;borderWidth);<a name="l00538"></a>00538 <a name="l00539"></a>00539     <span class="keywordflow">if</span> ( update_geometry )<a name="l00540"></a>00540     {<a name="l00541"></a>00541         updateGeometry();<a name="l00542"></a>00542         update();<a name="l00543"></a>00543     }<a name="l00544"></a>00544 }<a name="l00545"></a>00545 <a name="l00547"></a><a class="code" href="class_qwt_wheel.html#c2bc645171e2c1dd34acff3d122ab4ba">00547</a> <span class="keywordtype">void</span> <a class="code" href="class_qwt_wheel.html#c2bc645171e2c1dd34acff3d122ab4ba">QwtWheel::paintEvent</a>(QPaintEvent *e)<a name="l00548"></a>00548 {<a name="l00549"></a>00549     <span class="comment">// Use double-buffering</span><a name="l00550"></a>00550     <span class="keyword">const</span> QRect &amp;ur = e-&gt;rect();<a name="l00551"></a>00551     <span class="keywordflow">if</span> ( ur.isValid() )<a name="l00552"></a>00552     {<a name="l00553"></a>00553 #<span class="keywordflow">if</span> QT_VERSION &lt; 0x040000<a name="l00554"></a>00554         QwtPaintBuffer paintBuffer(<span class="keyword">this</span>, ur);<a name="l00555"></a>00555         <a class="code" href="class_qwt_wheel.html#e08370e0e6a82ab3539d073ced3bc313">draw</a>(paintBuffer.painter(), ur);<a name="l00556"></a>00556 <span class="preprocessor">#else</span><a name="l00557"></a>00557 <span class="preprocessor"></span>        QPainter painter(<span class="keyword">this</span>);<a name="l00558"></a>00558         <a class="code" href="class_qwt_wheel.html#e08370e0e6a82ab3539d073ced3bc313">draw</a>(&amp;painter, ur);<a name="l00559"></a>00559 <span class="preprocessor">#endif</span><a name="l00560"></a>00560 <span class="preprocessor"></span>    }<a name="l00561"></a>00561 }<a name="l00562"></a>00562 <a name="l00564"></a><a class="code" href="class_qwt_wheel.html#e08370e0e6a82ab3539d073ced3bc313">00564</a> <span class="keywordtype">void</span> <a class="code" href="class_qwt_wheel.html#e08370e0e6a82ab3539d073ced3bc313">QwtWheel::draw</a>(QPainter *painter, <span class="keyword">const</span> QRect&amp;)<a name="l00565"></a>00565 {<a name="l00566"></a>00566     qDrawShadePanel( painter, rect().x(), rect().y(),<a name="l00567"></a>00567         rect().width(), rect().height(),<a name="l00568"></a>00568 #<span class="keywordflow">if</span> QT_VERSION &lt; 0x040000<a name="l00569"></a>00569         colorGroup(), <a name="l00570"></a>00570 #<span class="keywordflow">else</span><a name="l00571"></a>00571         palette(), <a name="l00572"></a>00572 #endif<a name="l00573"></a>00573         <span class="keyword">true</span>, d_data-&gt;borderWidth );<a name="l00574"></a>00574 <a name="l00575"></a>00575     <a class="code" href="class_qwt_wheel.html#d1feb5d4c2a9b410c4d5d108a5630904">drawWheel</a>( painter, d_data-&gt;sliderRect );<a name="l00576"></a>00576 <a name="l00577"></a>00577     <span class="keywordflow">if</span> ( hasFocus() )<a name="l00578"></a>00578         <a class="code" href="class_qwt_painter.html#bb6bbb26f325e33236c5292107e44102">QwtPainter::drawFocusRect</a>(painter, <span class="keyword">this</span>);<a name="l00579"></a>00579 }<a name="l00580"></a>00580 <a name="l00582"></a><a class="code" href="class_qwt_wheel.html#0fa3d4f4189f7bb6ee0944cd30060eb5">00582</a> <span class="keywordtype">void</span> <a class="code" href="class_qwt_wheel.html#0fa3d4f4189f7bb6ee0944cd30060eb5">QwtWheel::valueChange</a>()<a name="l00583"></a>00583 {<a name="l00584"></a>00584     <a class="code" href="class_qwt_abstract_slider.html#2f04dc51e4402b51fef3250bcc99dc7f">QwtAbstractSlider::valueChange</a>();<a name="l00585"></a>00585     update();<a name="l00586"></a>00586 }<a name="l00587"></a>00587 <a name="l00588"></a>00588 <a name="l00596"></a><a class="code" href="class_qwt_wheel.html#2655146c5d017756566691e8142b8fcd">00596</a> <span class="keywordtype">void</span> <a class="code" href="class_qwt_wheel.html#2655146c5d017756566691e8142b8fcd">QwtWheel::getScrollMode</a>( <span class="keyword">const</span> QPoint &amp;p, <span class="keywordtype">int</span> &amp;scrollMode, <span class="keywordtype">int</span> &amp;direction)<a name="l00597"></a>00597 {<a name="l00598"></a>00598     <span class="keywordflow">if</span> ( d_data-&gt;sliderRect.contains(p) )<a name="l00599"></a>00599         scrollMode = ScrMouse;<a name="l00600"></a>00600     <span class="keywordflow">else</span><a name="l00601"></a>00601         scrollMode = ScrNone;<a name="l00602"></a>00602 <a name="l00603"></a>00603     direction = 0;<a name="l00604"></a>00604 }<a name="l00605"></a>00605 <a name="l00612"></a><a class="code" href="class_qwt_wheel.html#811ef1cf04a3d39eb017fcfe808bbd4f">00612</a> <span class="keywordtype">void</span> <a class="code" href="class_qwt_wheel.html#811ef1cf04a3d39eb017fcfe808bbd4f">QwtWheel::setMass</a>(<span class="keywordtype">double</span> val)<a name="l00613"></a>00613 {<a name="l00614"></a>00614     <a class="code" href="class_qwt_abstract_slider.html#305b137fe4dd80cba307fe1b4bd46272">QwtAbstractSlider::setMass</a>(val);<a name="l00615"></a>00615 }<a name="l00616"></a>00616 <a name="l00624"></a><a class="code" href="class_qwt_wheel.html#fc5416139e1c962b950a8d48fe465209">00624</a> <span class="keywordtype">void</span> <a class="code" href="class_qwt_wheel.html#fc5416139e1c962b950a8d48fe465209">QwtWheel::setWheelWidth</a>(<span class="keywordtype">int</span> w)<a name="l00625"></a>00625 {<a name="l00626"></a>00626     d_data-&gt;wheelWidth = w;<a name="l00627"></a>00627     <a class="code" href="class_qwt_wheel.html#03a6adc4f6516143501c8114f164d47c">layoutWheel</a>();<a name="l00628"></a>00628 }<a name="l00629"></a>00629 <a name="l00633"></a><a class="code" href="class_qwt_wheel.html#77404d4e604a196bd4e809ec7d9f2076">00633</a> QSize <a class="code" href="class_qwt_wheel.html#77404d4e604a196bd4e809ec7d9f2076">QwtWheel::sizeHint</a>()<span class="keyword"> const</span><a name="l00634"></a>00634 <span class="keyword"></span>{<a name="l00635"></a>00635     <span class="keywordflow">return</span> <a class="code" href="class_qwt_wheel.html#668397451f5ad7b2a78d01d9e7141bcf">minimumSizeHint</a>();<a name="l00636"></a>00636 }<a name="l00637"></a>00637 <a name="l00642"></a><a class="code" href="class_qwt_wheel.html#668397451f5ad7b2a78d01d9e7141bcf">00642</a> QSize <a class="code" href="class_qwt_wheel.html#668397451f5ad7b2a78d01d9e7141bcf">QwtWheel::minimumSizeHint</a>()<span class="keyword"> const</span><a name="l00643"></a>00643 <span class="keyword"></span>{<a name="l00644"></a>00644     QSize sz( 3*d_data-&gt;wheelWidth + 2*d_data-&gt;borderWidth,<a name="l00645"></a>00645     d_data-&gt;wheelWidth + 2*d_data-&gt;borderWidth );<a name="l00646"></a>00646     <span class="keywordflow">if</span> ( <a class="code" href="class_qwt_abstract_slider.html#4d2521b9c31ec64b71d8e1771b156d88">orientation</a>() != Qt::Horizontal )<a name="l00647"></a>00647         sz.transpose();<a name="l00648"></a>00648     <span class="keywordflow">return</span> sz;<a name="l00649"></a>00649 }<a name="l00650"></a>00650 <a name="l00654"></a><a class="code" href="class_qwt_wheel.html#358aae0c56eda43f5c9fdb74b89de60a">00654</a> <span class="keywordtype">void</span> <a class="code" href="class_qwt_wheel.html#358aae0c56eda43f5c9fdb74b89de60a">QwtWheel::paletteChange</a>( <span class="keyword">const</span> QPalette&amp; )<a name="l00655"></a>00655 {<a name="l00656"></a>00656     update();<a name="l00657"></a>00657 }<a name="l00658"></a>00658 </pre></div><hr size="1"><address style="align: right;"><small>Generated on Mon Feb 26 21:22:39 2007 for Qwt User's Guide by&nbsp;<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 + -