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

📄 qwt__plot__magnifier_8cpp-source.html

📁 QWT5.01用于Qt开发的二维图形库程序
💻 HTML
📖 第 1 页 / 共 3 页
字号:
<a name="l00271"></a>00271 {<a name="l00272"></a>00272     <span class="keywordflow">if</span> ( me-&gt;button() != d_data-&gt;mouseButton )<a name="l00273"></a>00273         <span class="keywordflow">return</span>;<a name="l00274"></a>00274 <a name="l00275"></a>00275 <span class="preprocessor">#if QT_VERSION &lt; 0x040000</span><a name="l00276"></a>00276 <span class="preprocessor"></span>    <span class="keywordflow">if</span> ( (me-&gt;state() &amp; Qt::KeyButtonMask) !=<a name="l00277"></a>00277         (d_data-&gt;mouseButtonState &amp; Qt::KeyButtonMask) )<a name="l00278"></a>00278 #<span class="keywordflow">else</span><a name="l00279"></a>00279     <span class="keywordflow">if</span> ( (me-&gt;modifiers() &amp; Qt::KeyboardModifierMask) !=<a name="l00280"></a>00280         (<span class="keywordtype">int</span>)(d_data-&gt;mouseButtonState &amp; Qt::KeyboardModifierMask) )<a name="l00281"></a>00281 <span class="preprocessor">#endif</span><a name="l00282"></a>00282 <span class="preprocessor"></span>    {<a name="l00283"></a>00283         <span class="keywordflow">return</span>;<a name="l00284"></a>00284     }<a name="l00285"></a>00285 <a name="l00286"></a>00286     d_data-&gt;hasMouseTracking = <a class="code" href="class_qwt_plot_magnifier.html#947d94f9517bb096851738b5c2bf4b7d">canvas</a>()-&gt;hasMouseTracking();<a name="l00287"></a>00287     <a class="code" href="class_qwt_plot_magnifier.html#947d94f9517bb096851738b5c2bf4b7d">canvas</a>()-&gt;setMouseTracking(<span class="keyword">true</span>);<a name="l00288"></a>00288     d_data-&gt;mousePos = me-&gt;pos();<a name="l00289"></a>00289     d_data-&gt;mousePressed = <span class="keyword">true</span>;<a name="l00290"></a>00290 }<a name="l00291"></a>00291 <a name="l00292"></a><a class="code" href="class_qwt_plot_magnifier.html#c49949cda6c26f8fc55e6d7970a46b55">00292</a> <span class="keywordtype">void</span> <a class="code" href="class_qwt_plot_magnifier.html#c49949cda6c26f8fc55e6d7970a46b55">QwtPlotMagnifier::widgetMouseReleaseEvent</a>(QMouseEvent *)<a name="l00293"></a>00293 {<a name="l00294"></a>00294     d_data-&gt;mousePressed = <span class="keyword">false</span>;<a name="l00295"></a>00295     <a class="code" href="class_qwt_plot_magnifier.html#947d94f9517bb096851738b5c2bf4b7d">canvas</a>()-&gt;setMouseTracking(d_data-&gt;hasMouseTracking);<a name="l00296"></a>00296 }<a name="l00297"></a>00297 <a name="l00298"></a><a class="code" href="class_qwt_plot_magnifier.html#36181a5722bbc2b12628de7c1c86234e">00298</a> <span class="keywordtype">void</span> <a class="code" href="class_qwt_plot_magnifier.html#36181a5722bbc2b12628de7c1c86234e">QwtPlotMagnifier::widgetMouseMoveEvent</a>(QMouseEvent *me)<a name="l00299"></a>00299 {<a name="l00300"></a>00300     <span class="keywordflow">if</span> ( !d_data-&gt;mousePressed )<a name="l00301"></a>00301         <span class="keywordflow">return</span>;<a name="l00302"></a>00302 <a name="l00303"></a>00303     <span class="keyword">const</span> <span class="keywordtype">int</span> dy = me-&gt;pos().y() - d_data-&gt;mousePos.y();<a name="l00304"></a>00304     <span class="keywordflow">if</span> ( dy != 0 )<a name="l00305"></a>00305     {<a name="l00306"></a>00306         <span class="keywordtype">double</span> f = d_data-&gt;mouseFactor;<a name="l00307"></a>00307         <span class="keywordflow">if</span> ( dy &lt; 0 )<a name="l00308"></a>00308             f = 1 / f;<a name="l00309"></a>00309 <a name="l00310"></a>00310         <a class="code" href="class_qwt_plot_magnifier.html#271ae5ad42c3dd12812246d2dee687ea">rescale</a>(f);<a name="l00311"></a>00311     }<a name="l00312"></a>00312 <a name="l00313"></a>00313     d_data-&gt;mousePos = me-&gt;pos();<a name="l00314"></a>00314 }<a name="l00315"></a>00315 <a name="l00316"></a><a class="code" href="class_qwt_plot_magnifier.html#e0740870e16e8bfa910271d10d0839b9">00316</a> <span class="keywordtype">void</span> <a class="code" href="class_qwt_plot_magnifier.html#e0740870e16e8bfa910271d10d0839b9">QwtPlotMagnifier::widgetWheelEvent</a>(QWheelEvent *we)<a name="l00317"></a>00317 {<a name="l00318"></a>00318 <span class="preprocessor">#if QT_VERSION &lt; 0x040000</span><a name="l00319"></a>00319 <span class="preprocessor"></span>    <span class="keywordflow">if</span> ( (we-&gt;state() &amp; Qt::KeyButtonMask) !=<a name="l00320"></a>00320         (d_data-&gt;wheelButtonState &amp; Qt::KeyButtonMask) )<a name="l00321"></a>00321 #<span class="keywordflow">else</span><a name="l00322"></a>00322     <span class="keywordflow">if</span> ( (we-&gt;modifiers() &amp; Qt::KeyboardModifierMask) !=<a name="l00323"></a>00323         (<span class="keywordtype">int</span>)(d_data-&gt;wheelButtonState &amp; Qt::KeyboardModifierMask) )<a name="l00324"></a>00324 <span class="preprocessor">#endif</span><a name="l00325"></a>00325 <span class="preprocessor"></span>    {<a name="l00326"></a>00326         <span class="keywordflow">return</span>;<a name="l00327"></a>00327     }<a name="l00328"></a>00328 <a name="l00329"></a>00329     <span class="keywordflow">if</span> ( d_data-&gt;wheelFactor != 0.0 )<a name="l00330"></a>00330     {<a name="l00331"></a>00331        <span class="comment">/*</span><a name="l00332"></a>00332 <span class="comment">           A positive delta indicates that the wheel was </span><a name="l00333"></a>00333 <span class="comment">           rotated forwards away from the user; a negative </span><a name="l00334"></a>00334 <span class="comment">           value indicates that the wheel was rotated </span><a name="l00335"></a>00335 <span class="comment">           backwards toward the user.</span><a name="l00336"></a>00336 <span class="comment">           Most mouse types work in steps of 15 degrees, </span><a name="l00337"></a>00337 <span class="comment">           in which case the delta value is a multiple </span><a name="l00338"></a>00338 <span class="comment">           of 120 (== 15 * 8).</span><a name="l00339"></a>00339 <span class="comment">        */</span><a name="l00340"></a>00340         <span class="keywordtype">double</span> f = ::pow(d_data-&gt;wheelFactor, <a name="l00341"></a>00341             qwtAbs(we-&gt;delta() / 120));<a name="l00342"></a>00342         <span class="keywordflow">if</span> ( we-&gt;delta() &gt; 0 )<a name="l00343"></a>00343             f = 1 / f;<a name="l00344"></a>00344 <a name="l00345"></a>00345         <a class="code" href="class_qwt_plot_magnifier.html#271ae5ad42c3dd12812246d2dee687ea">rescale</a>(f);<a name="l00346"></a>00346     }<a name="l00347"></a>00347 }<a name="l00348"></a>00348 <a name="l00349"></a><a class="code" href="class_qwt_plot_magnifier.html#7863d3b5d6a30a54e51be541eab5196f">00349</a> <span class="keywordtype">void</span> <a class="code" href="class_qwt_plot_magnifier.html#7863d3b5d6a30a54e51be541eab5196f">QwtPlotMagnifier::widgetKeyPressEvent</a>(QKeyEvent *ke)<a name="l00350"></a>00350 {<a name="l00351"></a>00351     <span class="keyword">const</span> <span class="keywordtype">int</span> key = ke-&gt;key();<a name="l00352"></a>00352 <span class="preprocessor">#if QT_VERSION &lt; 0x040000</span><a name="l00353"></a>00353 <span class="preprocessor"></span>    <span class="keyword">const</span> <span class="keywordtype">int</span> state = ke-&gt;state();<a name="l00354"></a>00354 <span class="preprocessor">#else</span><a name="l00355"></a>00355 <span class="preprocessor"></span>    <span class="keyword">const</span> <span class="keywordtype">int</span> state = ke-&gt;modifiers();<a name="l00356"></a>00356 <span class="preprocessor">#endif</span><a name="l00357"></a>00357 <span class="preprocessor"></span><a name="l00358"></a>00358     <span class="keywordflow">if</span> ( key == d_data-&gt;zoomInKey &amp;&amp; <a name="l00359"></a>00359         state == d_data-&gt;zoomInKeyButtonState )<a name="l00360"></a>00360     {<a name="l00361"></a>00361         <a class="code" href="class_qwt_plot_magnifier.html#271ae5ad42c3dd12812246d2dee687ea">rescale</a>(d_data-&gt;keyFactor);<a name="l00362"></a>00362     }<a name="l00363"></a>00363     <span class="keywordflow">else</span> <span class="keywordflow">if</span> ( key == d_data-&gt;zoomOutKey &amp;&amp; <a name="l00364"></a>00364         state == d_data-&gt;zoomOutKeyButtonState )<a name="l00365"></a>00365     {<a name="l00366"></a>00366         <a class="code" href="class_qwt_plot_magnifier.html#271ae5ad42c3dd12812246d2dee687ea">rescale</a>(1.0 / d_data-&gt;keyFactor);<a name="l00367"></a>00367     }<a name="l00368"></a>00368 }<a name="l00369"></a>00369 <a name="l00370"></a><a class="code" href="class_qwt_plot_magnifier.html#911d5a15ba84046bee754b8385c0382b">00370</a> <span class="keywordtype">void</span> <a class="code" href="class_qwt_plot_magnifier.html#911d5a15ba84046bee754b8385c0382b">QwtPlotMagnifier::widgetKeyReleaseEvent</a>(QKeyEvent *)<a name="l00371"></a>00371 {<a name="l00372"></a>00372 }<a name="l00373"></a>00373 <a name="l00374"></a><a class="code" href="class_qwt_plot_magnifier.html#271ae5ad42c3dd12812246d2dee687ea">00374</a> <span class="keywordtype">void</span> <a class="code" href="class_qwt_plot_magnifier.html#271ae5ad42c3dd12812246d2dee687ea">QwtPlotMagnifier::rescale</a>(<span class="keywordtype">double</span> factor)<a name="l00375"></a>00375 {<a name="l00376"></a>00376     <span class="keywordflow">if</span> ( factor == 1.0 || factor == 0.0 )<a name="l00377"></a>00377         <span class="keywordflow">return</span>;<a name="l00378"></a>00378 <a name="l00379"></a>00379     <span class="keywordtype">bool</span> doReplot = <span class="keyword">false</span>;<a name="l00380"></a>00380     <a class="code" href="class_qwt_plot.html">QwtPlot</a>* plt = <a class="code" href="class_qwt_plot_magnifier.html#e0197fb4f393e149585ff62f8e29cea6">plot</a>();<a name="l00381"></a>00381 <a name="l00382"></a>00382     <span class="keyword">const</span> <span class="keywordtype">bool</span> autoReplot = plt-&gt;<a class="code" href="class_qwt_plot.html#f14053ca41be0f9c6f820ed3c4379831">autoReplot</a>();<a name="l00383"></a>00383     plt-&gt;<a class="code" href="class_qwt_plot.html#654934ec2ad167101dacb5174f5172d6">setAutoReplot</a>(<span class="keyword">false</span>);<a name="l00384"></a>00384 <a name="l00385"></a>00385     <span class="keywordflow">for</span> ( <span class="keywordtype">int</span> axisId = 0; axisId &lt; QwtPlot::axisCnt; axisId++ )<a name="l00386"></a>00386     {<a name="l00387"></a>00387         <span class="keyword">const</span> <a class="code" href="class_qwt_scale_div.html">QwtScaleDiv</a> *scaleDiv = plt-&gt;<a class="code" href="class_qwt_plot.html#596fc7e7960324ddc949c36242c5e6d6">axisScaleDiv</a>(axisId);<a name="l00388"></a>00388         <span class="keywordflow">if</span> ( <a class="code" href="class_qwt_plot_magnifier.html#cb4c33465bdd3c19c07ea3fa836c1f8d">isAxisEnabled</a>(axisId) &amp;&amp; scaleDiv-&gt;isValid() )<a name="l00389"></a>00389         {<a name="l00390"></a>00390             <span class="keyword">const</span> <span class="keywordtype">double</span> center =<a name="l00391"></a>00391                 scaleDiv-&gt;<a class="code" href="class_qwt_scale_div.html#a3b6edf00144cdc0a59fbc91784faec3">lBound</a>() + scaleDiv-&gt;range() / 2;<a name="l00392"></a>00392             <span class="keyword">const</span> <span class="keywordtype">double</span> width_2 = scaleDiv-&gt;range() / 2 * factor;<a name="l00393"></a>00393 <a name="l00394"></a>00394             plt-&gt;<a class="code" href="class_qwt_plot.html#cef5ea818944b93b8695d0c16924eed6">setAxisScale</a>(axisId, center - width_2, center + width_2);<a name="l00395"></a>00395             doReplot = <span class="keyword">true</span>;<a name="l00396"></a>00396         }<a name="l00397"></a>00397     }<a name="l00398"></a>00398 <a name="l00399"></a>00399     plt-&gt;setAutoReplot(autoReplot);<a name="l00400"></a>00400 <a name="l00401"></a>00401     <span class="keywordflow">if</span> ( doReplot )<a name="l00402"></a>00402         plt-&gt;replot();<a name="l00403"></a>00403 }</pre></div><hr size="1"><address style="align: right;"><small>Generated on Mon Feb 26 21:22:37 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 + -