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

📄 qwt__plot__zoomer_8cpp-source.html

📁 QWT5.01用于Qt开发的二维图形库程序
💻 HTML
📖 第 1 页 / 共 3 页
字号:
<a name="l00436"></a>00436             <a class="code" href="class_qwt_plot_zoomer.html#eeed51dfa01136f00961e679dcbb9d9d">zoom</a>(+1);<a name="l00437"></a>00437         <span class="keywordflow">else</span> <span class="keywordflow">if</span> ( <a class="code" href="class_qwt_event_pattern.html#0a727c4369d8535eed5695a2a76b7e79">keyMatch</a>(KeyHome, ke) )<a name="l00438"></a>00438             <a class="code" href="class_qwt_plot_zoomer.html#eeed51dfa01136f00961e679dcbb9d9d">zoom</a>(0);<a name="l00439"></a>00439     }<a name="l00440"></a>00440 <a name="l00441"></a>00441     <a class="code" href="class_qwt_picker.html#f5bc441b2fc143363563922a3b3c70ae">QwtPlotPicker::widgetKeyPressEvent</a>(ke);<a name="l00442"></a>00442 }<a name="l00443"></a>00443 <a name="l00452"></a><a class="code" href="class_qwt_plot_zoomer.html#c66b3eac03db212812198637f4e233ca">00452</a> <span class="keywordtype">void</span> <a class="code" href="class_qwt_plot_zoomer.html#c66b3eac03db212812198637f4e233ca">QwtPlotZoomer::moveBy</a>(<span class="keywordtype">double</span> dx, <span class="keywordtype">double</span> dy)<a name="l00453"></a>00453 {<a name="l00454"></a>00454     <span class="keyword">const</span> QwtDoubleRect &amp;rect = d_data-&gt;zoomStack[d_data-&gt;zoomRectIndex];<a name="l00455"></a>00455     <a class="code" href="class_qwt_plot_zoomer.html#6bfbb67129b1220df65685858c9d882c">move</a>(rect.left() + dx, rect.top() + dy);<a name="l00456"></a>00456 }<a name="l00457"></a>00457 <a name="l00467"></a><a class="code" href="class_qwt_plot_zoomer.html#6bfbb67129b1220df65685858c9d882c">00467</a> <span class="keywordtype">void</span> <a class="code" href="class_qwt_plot_zoomer.html#6bfbb67129b1220df65685858c9d882c">QwtPlotZoomer::move</a>(<span class="keywordtype">double</span> x, <span class="keywordtype">double</span> y)<a name="l00468"></a>00468 {<a name="l00469"></a>00469     <span class="keywordflow">if</span> ( x &lt; <a class="code" href="class_qwt_plot_zoomer.html#ec745fbace2e6d1e69e7d9be0368bd8e">zoomBase</a>().left() )<a name="l00470"></a>00470         x = <a class="code" href="class_qwt_plot_zoomer.html#ec745fbace2e6d1e69e7d9be0368bd8e">zoomBase</a>().left();<a name="l00471"></a>00471     <span class="keywordflow">if</span> ( x &gt; <a class="code" href="class_qwt_plot_zoomer.html#ec745fbace2e6d1e69e7d9be0368bd8e">zoomBase</a>().right() - <a class="code" href="class_qwt_plot_zoomer.html#ef67ca3d673cbd6063f0574621c808ae">zoomRect</a>().width() )<a name="l00472"></a>00472         x = <a class="code" href="class_qwt_plot_zoomer.html#ec745fbace2e6d1e69e7d9be0368bd8e">zoomBase</a>().right() - <a class="code" href="class_qwt_plot_zoomer.html#ef67ca3d673cbd6063f0574621c808ae">zoomRect</a>().width();<a name="l00473"></a>00473 <a name="l00474"></a>00474     <span class="keywordflow">if</span> ( y &lt; <a class="code" href="class_qwt_plot_zoomer.html#ec745fbace2e6d1e69e7d9be0368bd8e">zoomBase</a>().top() )<a name="l00475"></a>00475         y = <a class="code" href="class_qwt_plot_zoomer.html#ec745fbace2e6d1e69e7d9be0368bd8e">zoomBase</a>().top();<a name="l00476"></a>00476     <span class="keywordflow">if</span> ( y &gt; <a class="code" href="class_qwt_plot_zoomer.html#ec745fbace2e6d1e69e7d9be0368bd8e">zoomBase</a>().bottom() - <a class="code" href="class_qwt_plot_zoomer.html#ef67ca3d673cbd6063f0574621c808ae">zoomRect</a>().height() )<a name="l00477"></a>00477         y = <a class="code" href="class_qwt_plot_zoomer.html#ec745fbace2e6d1e69e7d9be0368bd8e">zoomBase</a>().bottom() - <a class="code" href="class_qwt_plot_zoomer.html#ef67ca3d673cbd6063f0574621c808ae">zoomRect</a>().height();<a name="l00478"></a>00478 <a name="l00479"></a>00479     <span class="keywordflow">if</span> ( x != <a class="code" href="class_qwt_plot_zoomer.html#ef67ca3d673cbd6063f0574621c808ae">zoomRect</a>().left() || y != <a class="code" href="class_qwt_plot_zoomer.html#ef67ca3d673cbd6063f0574621c808ae">zoomRect</a>().top() )<a name="l00480"></a>00480     {<a name="l00481"></a>00481         d_data-&gt;zoomStack[d_data-&gt;zoomRectIndex].moveTo(x, y);<a name="l00482"></a>00482         <a class="code" href="class_qwt_plot_zoomer.html#0d0f90bbd5fe99d5231b3cee00fffabe">rescale</a>();<a name="l00483"></a>00483     }<a name="l00484"></a>00484 }<a name="l00485"></a>00485 <a name="l00497"></a><a class="code" href="class_qwt_plot_zoomer.html#86898c6696ee0706a3ac6b61018a112e">00497</a> <span class="keywordtype">bool</span> <a class="code" href="class_qwt_plot_zoomer.html#86898c6696ee0706a3ac6b61018a112e">QwtPlotZoomer::accept</a>(QwtPolygon &amp;pa)<span class="keyword"> const</span><a name="l00498"></a>00498 <span class="keyword"></span>{<a name="l00499"></a>00499     <span class="keywordflow">if</span> ( pa.count() &lt; 2 )<a name="l00500"></a>00500         <span class="keywordflow">return</span> <span class="keyword">false</span>;<a name="l00501"></a>00501 <a name="l00502"></a>00502     QRect rect = QRect(pa[0], pa[<span class="keywordtype">int</span>(pa.count()) - 1]);<a name="l00503"></a>00503 <span class="preprocessor">#if QT_VERSION &lt; 0x040000</span><a name="l00504"></a>00504 <span class="preprocessor"></span>    rect = rect.normalize();<a name="l00505"></a>00505 <span class="preprocessor">#else</span><a name="l00506"></a>00506 <span class="preprocessor"></span>    rect = rect.normalized();<a name="l00507"></a>00507 <span class="preprocessor">#endif</span><a name="l00508"></a>00508 <span class="preprocessor"></span><a name="l00509"></a>00509     <span class="keyword">const</span> <span class="keywordtype">int</span> minSize = 2;<a name="l00510"></a>00510     <span class="keywordflow">if</span> (rect.width() &lt; minSize &amp;&amp; rect.height() &lt; minSize )<a name="l00511"></a>00511         <span class="keywordflow">return</span> <span class="keyword">false</span>; <a name="l00512"></a>00512 <a name="l00513"></a>00513     <span class="keyword">const</span> <span class="keywordtype">int</span> <a class="code" href="class_qwt_plot_zoomer.html#e25e8193ae6ad9c1e244f175db173836">minZoomSize</a> = 11;<a name="l00514"></a>00514 <a name="l00515"></a>00515     <span class="keyword">const</span> QPoint center = rect.center();<a name="l00516"></a>00516     rect.setSize(rect.size().expandedTo(QSize(minZoomSize, minZoomSize)));<a name="l00517"></a>00517     rect.moveCenter(center);<a name="l00518"></a>00518 <a name="l00519"></a>00519     pa.resize(2);<a name="l00520"></a>00520     pa[0] = rect.topLeft();<a name="l00521"></a>00521     pa[1] = rect.bottomRight();<a name="l00522"></a>00522 <a name="l00523"></a>00523     <span class="keywordflow">return</span> <span class="keyword">true</span>;<a name="l00524"></a>00524 }<a name="l00525"></a>00525 <a name="l00531"></a><a class="code" href="class_qwt_plot_zoomer.html#e25e8193ae6ad9c1e244f175db173836">00531</a> QwtDoubleSize <a class="code" href="class_qwt_plot_zoomer.html#e25e8193ae6ad9c1e244f175db173836">QwtPlotZoomer::minZoomSize</a>()<span class="keyword"> const</span><a name="l00532"></a>00532 <span class="keyword"></span>{<a name="l00533"></a>00533     <span class="keywordflow">return</span> QwtDoubleSize(<a name="l00534"></a>00534         d_data-&gt;zoomStack[0].width() / 10e4,<a name="l00535"></a>00535         d_data-&gt;zoomStack[0].height() / 10e4<a name="l00536"></a>00536     );<a name="l00537"></a>00537 }<a name="l00538"></a>00538 <a name="l00545"></a><a class="code" href="class_qwt_plot_zoomer.html#a54bb05797c0468c0f8de4217dce24dd">00545</a> <span class="keywordtype">void</span> <a class="code" href="class_qwt_plot_zoomer.html#a54bb05797c0468c0f8de4217dce24dd">QwtPlotZoomer::begin</a>()<a name="l00546"></a>00546 {<a name="l00547"></a>00547     <span class="keywordflow">if</span> ( d_data-&gt;maxStackDepth &gt;= 0 )<a name="l00548"></a>00548     {<a name="l00549"></a>00549         <span class="keywordflow">if</span> ( d_data-&gt;zoomRectIndex &gt;= uint(d_data-&gt;maxStackDepth) )<a name="l00550"></a>00550             <span class="keywordflow">return</span>;<a name="l00551"></a>00551     }<a name="l00552"></a>00552 <a name="l00553"></a>00553     <span class="keyword">const</span> QwtDoubleSize minSize = <a class="code" href="class_qwt_plot_zoomer.html#e25e8193ae6ad9c1e244f175db173836">minZoomSize</a>();<a name="l00554"></a>00554     <span class="keywordflow">if</span> ( minSize.isValid() )<a name="l00555"></a>00555     {<a name="l00556"></a>00556         <span class="keyword">const</span> QwtDoubleSize sz = <a name="l00557"></a>00557             d_data-&gt;zoomStack[d_data-&gt;zoomRectIndex].size() * 0.9999;<a name="l00558"></a>00558 <a name="l00559"></a>00559         <span class="keywordflow">if</span> ( minSize.width() &gt;= sz.width() &amp;&amp;<a name="l00560"></a>00560             minSize.height() &gt;= sz.height() )<a name="l00561"></a>00561         {<a name="l00562"></a>00562             <span class="keywordflow">return</span>;<a name="l00563"></a>00563         }<a name="l00564"></a>00564     }<a name="l00565"></a>00565 <a name="l00566"></a>00566     <a class="code" href="class_qwt_picker.html#49cb19aea451e275c5d376235e5a1d83">QwtPlotPicker::begin</a>();<a name="l00567"></a>00567 }<a name="l00568"></a>00568 <a name="l00575"></a><a class="code" href="class_qwt_plot_zoomer.html#c7d10eb27858ccfebebecab5d69ecbb3">00575</a> <span class="keywordtype">bool</span> <a class="code" href="class_qwt_plot_zoomer.html#c7d10eb27858ccfebebecab5d69ecbb3">QwtPlotZoomer::end</a>(<span class="keywordtype">bool</span> ok)<a name="l00576"></a>00576 {<a name="l00577"></a>00577     ok = <a class="code" href="class_qwt_plot_picker.html#9fceb663542b6f9b0a358e9419406423">QwtPlotPicker::end</a>(ok);<a name="l00578"></a>00578     <span class="keywordflow">if</span> (!ok)<a name="l00579"></a>00579         <span class="keywordflow">return</span> <span class="keyword">false</span>;<a name="l00580"></a>00580 <a name="l00581"></a>00581     <a class="code" href="class_qwt_plot.html">QwtPlot</a> *<a class="code" href="class_qwt_plot_picker.html#c5906d5fe7543f3db7808da44d8197a9">plot</a> = <a class="code" href="class_qwt_plot_picker.html#c5906d5fe7543f3db7808da44d8197a9">QwtPlotZoomer::plot</a>();<a name="l00582"></a>00582     <span class="keywordflow">if</span> ( !<a class="code" href="class_qwt_plot_picker.html#c5906d5fe7543f3db7808da44d8197a9">plot</a> )<a name="l00583"></a>00583         <span class="keywordflow">return</span> <span class="keyword">false</span>;<a name="l00584"></a>00584 <a name="l00585"></a>00585     <span class="keyword">const</span> QwtPolygon &amp;pa = <a class="code" href="class_qwt_picker.html#c1eb6aa4b264116ac7411ae799862676">selection</a>();<a name="l00586"></a>00586     <span class="keywordflow">if</span> ( pa.count() &lt; 2 )<a name="l00587"></a>00587         <span class="keywordflow">return</span> <span class="keyword">false</span>;<a name="l00588"></a>00588 <a name="l00589"></a>00589     QRect rect = QRect(pa[0], pa[<span class="keywordtype">int</span>(pa.count() - 1)]);<a name="l00590"></a>00590 <span class="preprocessor">#if QT_VERSION &lt; 0x040000</span><a name="l00591"></a>00591 <span class="preprocessor"></span>    rect = rect.normalize();<a name="l00592"></a>00592 <span class="preprocessor">#else</span><a name="l00593"></a>00593 <span class="preprocessor"></span>    rect = rect.normalized();<a name="l00594"></a>00594 <span class="preprocessor">#endif</span><a name="l00595"></a>00595 <span class="preprocessor"></span><a name="l00596"></a>00596 <a name="l00597"></a>00597     QwtDoubleRect <a class="code" href="class_qwt_plot_zoomer.html#ef67ca3d673cbd6063f0574621c808ae">zoomRect</a> = <a class="code" href="class_qwt_plot_picker.html#fed4c21c2c9d7a3bf1d7a722b78b6264">invTransform</a>(rect).normalized();<a name="l00598"></a>00598 <a name="l00599"></a>00599     <span class="keyword">const</span> QwtDoublePoint center = zoomRect.center();<a name="l00600"></a>00600     zoomRect.setSize(zoomRect.size().expandedTo(<a class="code" href="class_qwt_plot_zoomer.html#e25e8193ae6ad9c1e244f175db173836">minZoomSize</a>()));<a name="l00601"></a>00601     zoomRect.moveCenter(center);<a name="l00602"></a>00602 <a name="l00603"></a>00603     <a class="code" href="class_qwt_plot_zoomer.html#eeed51dfa01136f00961e679dcbb9d9d">zoom</a>(zoomRect);<a name="l00604"></a>00604 <a name="l00605"></a>00605     <span class="keywordflow">return</span> <span class="keyword">true</span>;<a name="l00606"></a>00606 }<a name="l00607"></a>00607 <a name="l00619"></a><a class="code" href="class_qwt_plot_zoomer.html#c9d52dbddc9e79e7ce8ebd545e855e89">00619</a> <span class="keywordtype">void</span> <a class="code" href="class_qwt_plot_zoomer.html#c9d52dbddc9e79e7ce8ebd545e855e89">QwtPlotZoomer::setSelectionFlags</a>(<span class="keywordtype">int</span> flags)<a name="l00620"></a>00620 {<a name="l00621"></a>00621     <span class="comment">// we accept only rects</span><a name="l00622"></a>00622     flags &amp;= ~(PointSelection | PolygonSelection);<a name="l00623"></a>00623     flags |= RectSelection;<a name="l00624"></a>00624 <a name="l00625"></a>00625     <a class="code" href="class_qwt_picker.html#e93fe995c8c581ac33a9f3445ea5e7b9">QwtPlotPicker::setSelectionFlags</a>(flags);<a name="l00626"></a>00626 }</pre></div><hr size="1"><address style="align: right;"><small>Generated on Mon Feb 26 21:22:38 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 + -