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

📄 qwt__scale__widget_8cpp-source.html

📁 QWT5.01用于Qt开发的二维图形库程序
💻 HTML
📖 第 1 页 / 共 5 页
字号:
<a name="l00537"></a>00537 }<a name="l00538"></a>00538 <a name="l00542"></a><a class="code" href="class_qwt_scale_widget.html#049a30a94bf5ee2da74a5762346a333c">00542</a> <span class="keywordtype">void</span> <a class="code" href="class_qwt_scale_widget.html#049a30a94bf5ee2da74a5762346a333c">QwtScaleWidget::resizeEvent</a>(QResizeEvent *)<a name="l00543"></a>00543 {<a name="l00544"></a>00544     <a class="code" href="class_qwt_scale_widget.html#5964a55d1572ea775eae3ca93a755358">layoutScale</a>(<span class="keyword">false</span>);<a name="l00545"></a>00545 }<a name="l00546"></a>00546 <a name="l00548"></a>00548 <span class="comment">//  the current rect and fonts.</span><a name="l00549"></a>00549 <span class="comment">//  \param update_geometry   notify the layout system and call update</span><a name="l00550"></a>00550 <span class="comment">//         to redraw the scale</span><a name="l00551"></a>00551 <a name="l00552"></a><a class="code" href="class_qwt_scale_widget.html#5964a55d1572ea775eae3ca93a755358">00552</a> <span class="keywordtype">void</span> <a class="code" href="class_qwt_scale_widget.html#5964a55d1572ea775eae3ca93a755358">QwtScaleWidget::layoutScale</a>( <span class="keywordtype">bool</span> update_geometry )<a name="l00553"></a>00553 {<a name="l00554"></a>00554     <span class="keywordtype">int</span> bd0, bd1;<a name="l00555"></a>00555     <a class="code" href="class_qwt_scale_widget.html#57ca1a6a87417a732e0b1e66ac2a3493">getBorderDistHint</a>(bd0, bd1);<a name="l00556"></a>00556     <span class="keywordflow">if</span> ( d_data-&gt;borderDist[0] &gt; bd0 )<a name="l00557"></a>00557         bd0 = d_data-&gt;borderDist[0];<a name="l00558"></a>00558     <span class="keywordflow">if</span> ( d_data-&gt;borderDist[1] &gt; bd1 )<a name="l00559"></a>00559         bd1 = d_data-&gt;borderDist[1];<a name="l00560"></a>00560 <a name="l00561"></a>00561     <span class="keywordtype">int</span> <a class="code" href="class_qwt_scale_widget.html#a5877851d15888977621bfe86b945984">colorBarWidth</a> = 0;<a name="l00562"></a>00562     <span class="keywordflow">if</span> ( d_data-&gt;colorBar.isEnabled &amp;&amp; d_data-&gt;colorBar.interval.isValid() )<a name="l00563"></a>00563         colorBarWidth = d_data-&gt;colorBar.width + d_data-&gt;spacing;<a name="l00564"></a>00564 <a name="l00565"></a>00565     <span class="keyword">const</span> QRect r = rect();<a name="l00566"></a>00566     <span class="keywordtype">int</span> x, y, length;<a name="l00567"></a>00567 <a name="l00568"></a>00568     <span class="keywordflow">if</span> ( d_data-&gt;scaleDraw-&gt;orientation() == Qt::Vertical )<a name="l00569"></a>00569     {<a name="l00570"></a>00570         y = r.top() + bd0;<a name="l00571"></a>00571         length = r.height() - (bd0 + bd1);<a name="l00572"></a>00572 <a name="l00573"></a>00573         <span class="keywordflow">if</span> ( d_data-&gt;scaleDraw-&gt;alignment() == QwtScaleDraw::LeftScale )<a name="l00574"></a>00574             x = r.right() - d_data-&gt;margin - colorBarWidth;<a name="l00575"></a>00575         <span class="keywordflow">else</span><a name="l00576"></a>00576             x = r.left() + d_data-&gt;margin + colorBarWidth;<a name="l00577"></a>00577     }<a name="l00578"></a>00578     <span class="keywordflow">else</span><a name="l00579"></a>00579     {<a name="l00580"></a>00580         x = r.left() + bd0; <a name="l00581"></a>00581         length = r.width() - (bd0 + bd1);<a name="l00582"></a>00582 <a name="l00583"></a>00583         <span class="keywordflow">if</span> ( d_data-&gt;scaleDraw-&gt;alignment() == QwtScaleDraw::BottomScale )<a name="l00584"></a>00584             y = r.top() + d_data-&gt;margin + colorBarWidth;<a name="l00585"></a>00585         <span class="keywordflow">else</span><a name="l00586"></a>00586             y = r.bottom() - d_data-&gt;margin - colorBarWidth;<a name="l00587"></a>00587     }<a name="l00588"></a>00588 <a name="l00589"></a>00589     d_data-&gt;scaleDraw-&gt;move(x, y);<a name="l00590"></a>00590     d_data-&gt;scaleDraw-&gt;setLength(length);<a name="l00591"></a>00591 <a name="l00592"></a>00592     d_data-&gt;titleOffset = d_data-&gt;margin + d_data-&gt;spacing +<a name="l00593"></a>00593         colorBarWidth +<a name="l00594"></a>00594         d_data-&gt;scaleDraw-&gt;extent(QPen(Qt::black, d_data-&gt;penWidth), font());<a name="l00595"></a>00595 <a name="l00596"></a>00596     <span class="keywordflow">if</span> ( update_geometry )<a name="l00597"></a>00597     {<a name="l00598"></a>00598       updateGeometry();<a name="l00599"></a>00599       update();<a name="l00600"></a>00600     }<a name="l00601"></a>00601 }<a name="l00602"></a>00602 <a name="l00603"></a><a class="code" href="class_qwt_scale_widget.html#44375609584a468c1d9dc2135f7d6127">00603</a> <span class="keywordtype">void</span> <a class="code" href="class_qwt_scale_widget.html#44375609584a468c1d9dc2135f7d6127">QwtScaleWidget::drawColorBar</a>(QPainter *painter, <span class="keyword">const</span> QRect&amp; rect)<span class="keyword"> const</span><a name="l00604"></a>00604 <span class="keyword"></span>{<a name="l00605"></a>00605     <span class="keywordflow">if</span> ( !d_data-&gt;colorBar.interval.isValid() )<a name="l00606"></a>00606         <span class="keywordflow">return</span>;<a name="l00607"></a>00607 <a name="l00608"></a>00608     <span class="keyword">const</span> <a class="code" href="class_qwt_scale_draw.html">QwtScaleDraw</a>* sd = d_data-&gt;scaleDraw;<a name="l00609"></a>00609 <a name="l00610"></a>00610     <a class="code" href="class_qwt_painter.html#985edd7dd1dadbd0a5af6e7fa0f32792">QwtPainter::drawColorBar</a>(painter, *d_data-&gt;colorBar.colorMap, <a name="l00611"></a>00611         d_data-&gt;colorBar.interval.normalized(), sd-&gt;<a class="code" href="class_qwt_abstract_scale_draw.html#9777f34effee2395dde92a42ef7902fd">map</a>(), <a name="l00612"></a>00612         sd-&gt;<a class="code" href="class_qwt_scale_draw.html#06bf10d73aa03c16394a85fa70a7a3b1">orientation</a>(), rect);<a name="l00613"></a>00613 }<a name="l00614"></a>00614 <a name="l00622"></a><a class="code" href="class_qwt_scale_widget.html#6cb4480b0f4ff5b6862b1f445be91438">00622</a> <span class="keywordtype">void</span> <a class="code" href="class_qwt_scale_widget.html#6cb4480b0f4ff5b6862b1f445be91438">QwtScaleWidget::drawTitle</a>(QPainter *painter,<a name="l00623"></a>00623     <a class="code" href="class_qwt_scale_draw.html#cd7ceeeac592ef08530788580b461c66">QwtScaleDraw::Alignment</a> align, <span class="keyword">const</span> QRect &amp;rect)<span class="keyword"> const</span><a name="l00624"></a>00624 <span class="keyword"></span>{<a name="l00625"></a>00625     QRect r;<a name="l00626"></a>00626     <span class="keywordtype">double</span> angle;<a name="l00627"></a>00627     <span class="keywordtype">int</span> flags = d_data-&gt;title.renderFlags() &amp; <a name="l00628"></a>00628         ~(Qt::AlignTop | Qt::AlignBottom | Qt::AlignVCenter);<a name="l00629"></a>00629 <a name="l00630"></a>00630     <span class="keywordflow">switch</span>(align)<a name="l00631"></a>00631     {<a name="l00632"></a>00632         <span class="keywordflow">case</span> QwtScaleDraw::LeftScale:<a name="l00633"></a>00633             flags |= Qt::AlignTop;<a name="l00634"></a>00634             angle = -90.0;<a name="l00635"></a>00635             r.setRect(rect.left(), rect.bottom(), rect.height(), rect.width());<a name="l00636"></a>00636             <span class="keywordflow">break</span>;<a name="l00637"></a>00637         <span class="keywordflow">case</span> QwtScaleDraw::RightScale:<a name="l00638"></a>00638             flags |= Qt::AlignTop;<a name="l00639"></a>00639             angle = 90.0;<a name="l00640"></a>00640             r.setRect(rect.right(), rect.top(), rect.height(), rect.width());<a name="l00641"></a>00641             <span class="keywordflow">break</span>;<a name="l00642"></a>00642         <span class="keywordflow">case</span> QwtScaleDraw::TopScale:<a name="l00643"></a>00643             flags |= Qt::AlignTop;<a name="l00644"></a>00644             angle = 0.0;<a name="l00645"></a>00645             r = rect;<a name="l00646"></a>00646             <span class="keywordflow">break</span>;<a name="l00647"></a>00647         <span class="keywordflow">case</span> QwtScaleDraw::BottomScale:<a name="l00648"></a>00648         <span class="keywordflow">default</span>:<a name="l00649"></a>00649             flags |= Qt::AlignBottom;<a name="l00650"></a>00650             angle = 0.0;<a name="l00651"></a>00651             r = rect;<a name="l00652"></a>00652             <span class="keywordflow">break</span>;<a name="l00653"></a>00653     }<a name="l00654"></a>00654 <a name="l00655"></a>00655     painter-&gt;save();<a name="l00656"></a>00656     painter-&gt;setFont(font());<a name="l00657"></a>00657 <span class="preprocessor">#if QT_VERSION &lt; 0x040000</span><a name="l00658"></a>00658 <span class="preprocessor"></span>    painter-&gt;setPen(colorGroup().color(QColorGroup::Text));<a name="l00659"></a>00659 <span class="preprocessor">#else</span><a name="l00660"></a>00660 <span class="preprocessor"></span>    painter-&gt;setPen(palette().color(QPalette::Text));<a name="l00661"></a>00661 <span class="preprocessor">#endif</span><a name="l00662"></a>00662 <span class="preprocessor"></span><a name="l00663"></a>00663     painter-&gt;translate(r.x(), r.y());<a name="l00664"></a>00664     <span class="keywordflow">if</span> (angle != 0.0)<a name="l00665"></a>00665         painter-&gt;rotate(angle);<a name="l00666"></a>00666 <a name="l00667"></a>00667     <a class="code" href="class_qwt_text.html">QwtText</a> <a class="code" href="class_qwt_scale_widget.html#75ab60ac06977a6cb1991aa2e7979c2e">title</a> = d_data-&gt;title;<a name="l00668"></a>00668     <a class="code" href="class_qwt_scale_widget.html#75ab60ac06977a6cb1991aa2e7979c2e">title</a>.<a class="code" href="class_qwt_text.html#2e71d427de766455323794f27d369a5d">setRenderFlags</a>(flags);<a name="l00669"></a>00669     <a class="code" href="class_qwt_scale_widget.html#75ab60ac06977a6cb1991aa2e7979c2e">title</a>.<a class="code" href="class_qwt_text.html#3907eb112ff2259adbaad4c433178354">draw</a>(painter, QRect(0, 0, r.width(), r.height()));<a name="l00670"></a>00670 <a name="l00671"></a>00671     painter-&gt;restore();<a name="l00672"></a>00672 }<a name="l00673"></a>00673 <a name="l00682"></a><a class="code" href="class_qwt_scale_widget.html#f151a963ea3cb7f04815db93e8f4882d">00682</a> <span class="keywordtype">void</span> <a class="code" href="class_qwt_scale_widget.html#f151a963ea3cb7f04815db93e8f4882d">QwtScaleWidget::scaleChange</a>()<a name="l00683"></a>00683 {<a name="l00684"></a>00684     <a class="code" href="class_qwt_scale_widget.html#5964a55d1572ea775eae3ca93a755358">layoutScale</a>();<a name="l00685"></a>00685 }<a name="l00686"></a>00686 <a name="l00690"></a><a class="code" href="class_qwt_scale_widget.html#5ed815b5ac0ed7d43ab923fcd1f5da3d">00690</a> QSize <a class="code" href="class_qwt_scale_widget.html#5ed815b5ac0ed7d43ab923fcd1f5da3d">QwtScaleWidget::sizeHint</a>()<span class="keyword"> const</span><a name="l00691"></a>00691 <span class="keyword"></span>{<a name="l00692"></a>00692     <span class="keywordflow">return</span> <a class="code" href="class_qwt_scale_widget.html#ee41cd1b3eff4cf06559e7a36baee5a5">minimumSizeHint</a>();<a name="l00693"></a>00693 }<a name="l00694"></a>00694 <a name="l00698"></a><a class="code" href="class_qwt_scale_widget.html#ee41cd1b3eff4cf06559e7a36baee5a5">00698</a> QSize <a class="code" href="class_qwt_scale_widget.html#ee41cd1b3eff4cf06559e7a36baee5a5">QwtScaleWidget::minimumSizeHint</a>()<span class="keyword"> const</span><a name="l00699"></a>00699 <span class="keyword"></span>{<a name="l00700"></a>00700     <span class="keyword">const</span> Qt::Orientation o = d_data-&gt;scaleDraw-&gt;orientation();<a name="l00701"></a>00701 <a name="l00702"></a>00702     <span class="comment">// Border Distance cannot be less than the scale borderDistHint</span><a name="l00703"></a>00703     <span class="comment">// Note, the borderDistHint is already included in minHeight/minWidth</span><a name="l00704"></a>00704     <span class="keywordtype">int</span> length = 0;<a name="l00705"></a>00705     <span class="keywordtype">int</span> mbd1, mbd2;<a name="l00706"></a>00706     <a class="code" href="class_qwt_scale_widget.html#57ca1a6a87417a732e0b1e66ac2a3493">getBorderDistHint</a>(mbd1, mbd2);<a name="l00707"></a>00707     length += qwtMax( 0, d_data-&gt;borderDist[0] - mbd1 );<a name="l00708"></a>00708     length += qwtMax( 0, d_data-&gt;borderDist[1] - mbd2 );

⌨️ 快捷键说明

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