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

📄 qwt__plot__layout_8cpp-source.html

📁 QWT5.01用于Qt开发的二维图形库程序
💻 HTML
📖 第 1 页 / 共 5 页
字号:
<a name="l00409"></a>00409     <span class="keywordflow">return</span> d_data-&gt;titleRect;<a name="l00410"></a>00410 }<a name="l00411"></a>00411 <a name="l00417"></a><a class="code" href="class_qwt_plot_layout.html#f3f630625686721b521a8cd3c015bcbf">00417</a> <span class="keyword">const</span> QRect &amp;<a class="code" href="class_qwt_plot_layout.html#f3f630625686721b521a8cd3c015bcbf">QwtPlotLayout::legendRect</a>()<span class="keyword"> const</span><a name="l00418"></a>00418 <span class="keyword"></span>{<a name="l00419"></a>00419     <span class="keywordflow">return</span> d_data-&gt;legendRect;<a name="l00420"></a>00420 }<a name="l00421"></a>00421 <a name="l00428"></a><a class="code" href="class_qwt_plot_layout.html#87154a8c0f12698113bf8990a7d579f6">00428</a> <span class="keyword">const</span> QRect &amp;<a class="code" href="class_qwt_plot_layout.html#87154a8c0f12698113bf8990a7d579f6">QwtPlotLayout::scaleRect</a>(<span class="keywordtype">int</span> axis)<span class="keyword"> const</span><a name="l00429"></a>00429 <span class="keyword"></span>{<a name="l00430"></a>00430     <span class="keywordflow">if</span> ( axis &lt; 0 || axis &gt;= QwtPlot::axisCnt )<a name="l00431"></a>00431     {<a name="l00432"></a>00432         <span class="keyword">static</span> QRect dummyRect;<a name="l00433"></a>00433         <span class="keywordflow">return</span> dummyRect;<a name="l00434"></a>00434     }<a name="l00435"></a>00435     <span class="keywordflow">return</span> d_data-&gt;scaleRect[axis];<a name="l00436"></a>00436 }<a name="l00437"></a>00437 <a name="l00443"></a><a class="code" href="class_qwt_plot_layout.html#244d79c1d635630b5d160053b62ae9f3">00443</a> <span class="keyword">const</span> QRect &amp;<a class="code" href="class_qwt_plot_layout.html#244d79c1d635630b5d160053b62ae9f3">QwtPlotLayout::canvasRect</a>()<span class="keyword"> const</span><a name="l00444"></a>00444 <span class="keyword"></span>{<a name="l00445"></a>00445     <span class="keywordflow">return</span> d_data-&gt;canvasRect;<a name="l00446"></a>00446 }<a name="l00447"></a>00447 <a name="l00452"></a><a class="code" href="class_qwt_plot_layout.html#44ce72879951571ffe4daa95be0ec242">00452</a> <span class="keywordtype">void</span> <a class="code" href="class_qwt_plot_layout.html#44ce72879951571ffe4daa95be0ec242">QwtPlotLayout::invalidate</a>()<a name="l00453"></a>00453 {<a name="l00454"></a>00454     d_data-&gt;titleRect = d_data-&gt;legendRect = d_data-&gt;canvasRect = QRect();<a name="l00455"></a>00455     <span class="keywordflow">for</span> (<span class="keywordtype">int</span> axis = 0; axis &lt; QwtPlot::axisCnt; axis++ )<a name="l00456"></a>00456         d_data-&gt;scaleRect[axis] = QRect();<a name="l00457"></a>00457 }<a name="l00458"></a>00458 <a name="l00464"></a><a class="code" href="class_qwt_plot_layout.html#068a12c510998760c727a095f5b055fe">00464</a> QSize <a class="code" href="class_qwt_plot_layout.html#068a12c510998760c727a095f5b055fe">QwtPlotLayout::minimumSizeHint</a>(<span class="keyword">const</span> <a class="code" href="class_qwt_plot.html">QwtPlot</a> *plot)<span class="keyword"> const</span><a name="l00465"></a>00465 <span class="keyword"></span>{<a name="l00466"></a>00466     <span class="keyword">class </span>ScaleData<a name="l00467"></a>00467     {<a name="l00468"></a>00468     <span class="keyword">public</span>:<a name="l00469"></a>00469         ScaleData()<a name="l00470"></a>00470         {<a name="l00471"></a>00471             w = h = minLeft = minRight = tickOffset = 0;<a name="l00472"></a>00472         }<a name="l00473"></a>00473 <a name="l00474"></a>00474         <span class="keywordtype">int</span> w;<a name="l00475"></a>00475         <span class="keywordtype">int</span> h;<a name="l00476"></a>00476         <span class="keywordtype">int</span> minLeft;<a name="l00477"></a>00477         <span class="keywordtype">int</span> minRight;<a name="l00478"></a>00478         <span class="keywordtype">int</span> tickOffset;<a name="l00479"></a>00479     } scaleData[QwtPlot::axisCnt];<a name="l00480"></a>00480 <a name="l00481"></a>00481     <span class="keywordtype">int</span> canvasBorder[QwtPlot::axisCnt];<a name="l00482"></a>00482 <a name="l00483"></a>00483     <span class="keywordtype">int</span> axis;<a name="l00484"></a>00484     <span class="keywordflow">for</span> ( axis = 0; axis &lt; QwtPlot::axisCnt; axis++ )<a name="l00485"></a>00485     {<a name="l00486"></a>00486         <span class="keywordflow">if</span> ( plot-&gt;<a class="code" href="class_qwt_plot.html#ac5107a1ec8836b53f084a5b1bb8cc43">axisEnabled</a>(axis) )<a name="l00487"></a>00487         {<a name="l00488"></a>00488             <span class="keyword">const</span> <a class="code" href="class_qwt_scale_widget.html">QwtScaleWidget</a> *scl = plot-&gt;<a class="code" href="class_qwt_plot.html#6b495d9b17962be6e098026441a1f7b8">axisWidget</a>(axis);<a name="l00489"></a>00489             ScaleData &amp;sd = scaleData[axis];<a name="l00490"></a>00490 <a name="l00491"></a>00491             <span class="keyword">const</span> QSize hint = scl-&gt;<a class="code" href="class_qwt_scale_widget.html#ee41cd1b3eff4cf06559e7a36baee5a5">minimumSizeHint</a>();<a name="l00492"></a>00492             sd.w = hint.width(); <a name="l00493"></a>00493             sd.h = hint.height(); <a name="l00494"></a>00494             scl-&gt;getBorderDistHint(sd.minLeft, sd.minRight);<a name="l00495"></a>00495             sd.tickOffset = scl-&gt;margin();<a name="l00496"></a>00496             <span class="keywordflow">if</span> ( scl-&gt;scaleDraw()-&gt;hasComponent(QwtAbstractScaleDraw::Ticks) )<a name="l00497"></a>00497                 sd.tickOffset += scl-&gt;scaleDraw()-&gt;majTickLength();<a name="l00498"></a>00498         }<a name="l00499"></a>00499 <a name="l00500"></a>00500         canvasBorder[axis] = plot-&gt;<a class="code" href="class_qwt_plot.html#afcc82150034fbeb393ceb9f54ba2f1a">canvas</a>()-&gt;frameWidth() +<a name="l00501"></a>00501             d_data-&gt;canvasMargin[axis] + 1;<a name="l00502"></a>00502             <a name="l00503"></a>00503     }<a name="l00504"></a>00504 <a name="l00505"></a>00505 <a name="l00506"></a>00506     <span class="keywordflow">for</span> ( axis = 0; axis &lt; QwtPlot::axisCnt; axis++ )<a name="l00507"></a>00507     {<a name="l00508"></a>00508         ScaleData &amp;sd = scaleData[axis];<a name="l00509"></a>00509         <span class="keywordflow">if</span> ( sd.w &amp;&amp; (axis == QwtPlot::xBottom || axis == QwtPlot::xTop) )<a name="l00510"></a>00510         {<a name="l00511"></a>00511             if ( (sd.minLeft &gt; canvasBorder[QwtPlot::yLeft]) <a name="l00512"></a>00512                 &amp;&amp; scaleData[QwtPlot::yLeft].w )<a name="l00513"></a>00513             {<a name="l00514"></a>00514                 <span class="keywordtype">int</span> shiftLeft = sd.minLeft - canvasBorder[QwtPlot::yLeft];<a name="l00515"></a>00515                 if ( shiftLeft &gt; scaleData[QwtPlot::yLeft].w )<a name="l00516"></a>00516                     shiftLeft = scaleData[QwtPlot::yLeft].w;<a name="l00517"></a>00517 <a name="l00518"></a>00518                 sd.w -= shiftLeft;<a name="l00519"></a>00519             }<a name="l00520"></a>00520             <span class="keywordflow">if</span> ( (sd.minRight &gt; canvasBorder[QwtPlot::yRight]) <a name="l00521"></a>00521                 &amp;&amp; scaleData[QwtPlot::yRight].w )<a name="l00522"></a>00522             {<a name="l00523"></a>00523                 <span class="keywordtype">int</span> shiftRight = sd.minRight - canvasBorder[QwtPlot::yRight];<a name="l00524"></a>00524                 if ( shiftRight &gt; scaleData[QwtPlot::yRight].w )<a name="l00525"></a>00525                     shiftRight = scaleData[QwtPlot::yRight].w;<a name="l00526"></a>00526 <a name="l00527"></a>00527                 sd.w -= shiftRight;<a name="l00528"></a>00528             }<a name="l00529"></a>00529         }<a name="l00530"></a>00530 <a name="l00531"></a>00531         <span class="keywordflow">if</span> ( sd.h &amp;&amp; (axis == QwtPlot::yLeft || axis == QwtPlot::yRight) )<a name="l00532"></a>00532         {<a name="l00533"></a>00533             if ( (sd.minLeft &gt; canvasBorder[QwtPlot::xBottom]) &amp;&amp;<a name="l00534"></a>00534                 scaleData[QwtPlot::xBottom].h )<a name="l00535"></a>00535             {<a name="l00536"></a>00536                 <span class="keywordtype">int</span> shiftBottom = sd.minLeft - canvasBorder[QwtPlot::xBottom];<a name="l00537"></a>00537                 if ( shiftBottom &gt; scaleData[QwtPlot::xBottom].tickOffset )<a name="l00538"></a>00538                     shiftBottom = scaleData[QwtPlot::xBottom].tickOffset;<a name="l00539"></a>00539 <a name="l00540"></a>00540                 sd.h -= shiftBottom;<a name="l00541"></a>00541             }<a name="l00542"></a>00542             <span class="keywordflow">if</span> ( (sd.minLeft &gt; canvasBorder[QwtPlot::xTop]) &amp;&amp;<a name="l00543"></a>00543                 scaleData[QwtPlot::xTop].h )<a name="l00544"></a>00544             {<a name="l00545"></a>00545                 <span class="keywordtype">int</span> shiftTop = sd.minRight - canvasBorder[QwtPlot::xTop];<a name="l00546"></a>00546                 if ( shiftTop &gt; scaleData[QwtPlot::xTop].tickOffset )<a name="l00547"></a>00547                     shiftTop = scaleData[QwtPlot::xTop].tickOffset;<a name="l00548"></a>00548 <a name="l00549"></a>00549                 sd.h -= shiftTop;<a name="l00550"></a>00550             }<a name="l00551"></a>00551         }<a name="l00552"></a>00552     }<a name="l00553"></a>00553 <a name="l00554"></a>00554     <span class="keyword">const</span> <a class="code" href="class_qwt_plot_canvas.html">QwtPlotCanvas</a> *canvas = plot-&gt;<a class="code" href="class_qwt_plot.html#afcc82150034fbeb393ceb9f54ba2f1a">canvas</a>();<a name="l00555"></a>00555     <span class="keyword">const</span> QSize minCanvasSize = canvas-&gt;minimumSize();<a name="l00556"></a>00556 <a name="l00557"></a>00557     <span class="keywordtype">int</span> w = scaleData[QwtPlot::yLeft].w + scaleData[QwtPlot::yRight].w;<a name="l00558"></a>00558     <span class="keywordtype">int</span> cw = qwtMax(scaleData[QwtPlot::xBottom].w, scaleData[QwtPlot::xTop].w)<a name="l00559"></a>00559         + 2 * (canvas-&gt;frameWidth() + 1);<a name="l00560"></a>00560     w += qwtMax(cw, minCanvasSize.width());<a name="l00561"></a>00561 <a name="l00562"></a>00562     <span class="keywordtype">int</span> h = scaleData[QwtPlot::xBottom].h + scaleData[QwtPlot::xTop].h;<a name="l00563"></a>00563     <span class="keywordtype">int</span> ch = qwtMax(scaleData[QwtPlot::yLeft].h, scaleData[QwtPlot::yRight].h)<a name="l00564"></a>00564         + 2 * (canvas-&gt;frameWidth() + 1);<a name="l00565"></a>00565     h += qwtMax(ch, minCanvasSize.height());<a name="l00566"></a>00566 <a name="l00567"></a>00567     <span class="keyword">const</span> <a class="code" href="class_qwt_text_label.html">QwtTextLabel</a> *title = plot-&gt;<a class="code" href="class_qwt_plot.html#c39356b86ed70ebf256a8ae964910206">titleLabel</a>();<a name="l00568"></a>00568     <span class="keywordflow">if</span> (title &amp;&amp; !title-&gt;text().isEmpty())<a name="l00569"></a>00569     {<a name="l00570"></a>00570         <span class="comment">// If only QwtPlot::yLeft or QwtPlot::yRight is showing, </span><a name="l00571"></a>00571         <span class="comment">// we center on the plot canvas.</span><a name="l00572"></a>00572         <span class="keyword">const</span> <span class="keywordtype">bool</span> centerOnCanvas = !(plot-&gt;<a class="code" href="class_qwt_plot.html#ac5107a1ec8836b53f084a5b1bb8cc43">axisEnabled</a>(QwtPlot::yLeft) <a name="l00573"></a>00573             &amp;&amp; plot-&gt;<a class="code" href="class_qwt_plot.html#ac5107a1ec8836b53f084a5b1bb8cc43">axisEnabled</a>(QwtPlot::yRight));<a name="l00574"></a>00574 <a name="l00575"></a>00575         <span class="keywordtype">int</span> titleW = w;<a name="l00576"></a>00576         <span class="keywordflow">if</span> ( centerOnCanvas )<a name="l00577"></a>00577         {<a name="l00578"></a>00578             titleW -= scaleData[QwtPlot::yLeft].w <a name="l00579"></a>00579                 + scaleData[QwtPlot::yRight].w;<a name="l00580"></a>00580         }<a name="l00581"></a>00581 <a name="l00582"></a>00582         <span class="keywordtype">int</span> titleH = title-&gt;<a class="code" href="class_qwt_text_label.html#de1867a2c9308f2235cfacf675fa1d4c">heightForWidth</a>(titleW);<a name="l00583"></a>00583         <span class="keywordflow">if</span> ( titleH &gt; titleW ) <span class="comment">// Compensate for a long title</span><a name="l00584"></a>00584         {<a name="l00585"></a>00585             w = titleW = titleH;<a name="l00586"></a>00586             <span class="keywordflow">if</span> ( centerOnCanvas )<a name="l00587"></a>00587             {<a name="l00588"></a>00588                 w += scaleData[QwtPlot::yLeft].w<a name="l00589"></a>00589                     + scaleData[QwtPlot::yRight].w;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -