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

📄 qwt__thermo_8cpp-source.html

📁 QWT5.01用于Qt开发的二维图形库程序
💻 HTML
📖 第 1 页 / 共 5 页
字号:
<a name="l00305"></a>00305                     r.y() + mbd + d_data-&gt;borderWidth,<a name="l00306"></a>00306                     d_data-&gt;thermoWidth,<a name="l00307"></a>00307                     r.height() - 2*(d_data-&gt;borderWidth + mbd));<a name="l00308"></a>00308                 <a class="code" href="class_qwt_thermo.html#aacb94a49eb05c91a3896d202f79ec46">scaleDraw</a>()-&gt;<a class="code" href="class_qwt_scale_draw.html#7a4de0055dc1358e55c3357366a54091">setAlignment</a>(QwtScaleDraw::LeftScale);<a name="l00309"></a>00309                 <a class="code" href="class_qwt_thermo.html#aacb94a49eb05c91a3896d202f79ec46">scaleDraw</a>()-&gt;<a class="code" href="class_qwt_scale_draw.html#d301aed0c797c10f0104976d1a62ff69">move</a>(<a name="l00310"></a>00310                     d_data-&gt;thermoRect.x() - d_data-&gt;scaleDist <a name="l00311"></a>00311                         - d_data-&gt;borderWidth,<a name="l00312"></a>00312                     d_data-&gt;thermoRect.y() );<a name="l00313"></a>00313                 <a class="code" href="class_qwt_thermo.html#aacb94a49eb05c91a3896d202f79ec46">scaleDraw</a>()-&gt;<a class="code" href="class_qwt_scale_draw.html#2094e09579671d0a8e4b14a636eba6ef">setLength</a>(d_data-&gt;thermoRect.height());<a name="l00314"></a>00314                 <span class="keywordflow">break</span>;<a name="l00315"></a>00315             }<a name="l00316"></a>00316         }<a name="l00317"></a>00317         d_data-&gt;map.setPaintInterval(<a name="l00318"></a>00318             d_data-&gt;thermoRect.y() + d_data-&gt;thermoRect.height() - 1,<a name="l00319"></a>00319             d_data-&gt;thermoRect.y());<a name="l00320"></a>00320     }<a name="l00321"></a>00321     <span class="keywordflow">if</span> ( update_geometry )<a name="l00322"></a>00322     {<a name="l00323"></a>00323         updateGeometry();<a name="l00324"></a>00324         update();<a name="l00325"></a>00325     }<a name="l00326"></a>00326 }<a name="l00327"></a>00327 <a name="l00346"></a><a class="code" href="class_qwt_thermo.html#c75f2d908e4e9315ac764cfc2dc920e1">00346</a> <span class="keywordtype">void</span> <a class="code" href="class_qwt_thermo.html#c75f2d908e4e9315ac764cfc2dc920e1">QwtThermo::setOrientation</a>(Qt::Orientation o, <a class="code" href="class_qwt_thermo.html#adfd670812eef5a798dcdb58cffb039b">ScalePos</a> s)<a name="l00347"></a>00347 {<a name="l00348"></a>00348     <span class="keywordflow">if</span> ( o == d_data-&gt;orientation &amp;&amp; s == d_data-&gt;scalePos )<a name="l00349"></a>00349         <span class="keywordflow">return</span>;<a name="l00350"></a>00350 <a name="l00351"></a>00351     <span class="keywordflow">switch</span>(o)<a name="l00352"></a>00352     {<a name="l00353"></a>00353         <span class="keywordflow">case</span> Qt::Horizontal:<a name="l00354"></a>00354         {<a name="l00355"></a>00355             <span class="keywordflow">if</span> ((s == NoScale) || (s == BottomScale) || (s == TopScale))<a name="l00356"></a>00356                 d_data-&gt;scalePos = s;<a name="l00357"></a>00357             <span class="keywordflow">else</span><a name="l00358"></a>00358                 d_data-&gt;scalePos = NoScale;<a name="l00359"></a>00359             <span class="keywordflow">break</span>;<a name="l00360"></a>00360         }<a name="l00361"></a>00361         <span class="keywordflow">case</span> Qt::Vertical:<a name="l00362"></a>00362         {<a name="l00363"></a>00363             <span class="keywordflow">if</span> ((s == NoScale) || (s == LeftScale) || (s == RightScale))<a name="l00364"></a>00364                 d_data-&gt;scalePos = s;<a name="l00365"></a>00365             <span class="keywordflow">else</span><a name="l00366"></a>00366                 d_data-&gt;scalePos = NoScale;<a name="l00367"></a>00367             <span class="keywordflow">break</span>;<a name="l00368"></a>00368         }<a name="l00369"></a>00369     }<a name="l00370"></a>00370 <a name="l00371"></a>00371     <span class="keywordflow">if</span> ( o != d_data-&gt;orientation )<a name="l00372"></a>00372     {<a name="l00373"></a>00373 <span class="preprocessor">#if QT_VERSION &gt;= 0x040000</span><a name="l00374"></a>00374 <span class="preprocessor"></span>        <span class="keywordflow">if</span> ( !testAttribute(Qt::WA_WState_OwnSizePolicy) )<a name="l00375"></a>00375 <span class="preprocessor">#else</span><a name="l00376"></a>00376 <span class="preprocessor"></span>        <span class="keywordflow">if</span> ( !testWState( WState_OwnSizePolicy ) )<a name="l00377"></a>00377 <span class="preprocessor">#endif</span><a name="l00378"></a>00378 <span class="preprocessor"></span>        {<a name="l00379"></a>00379             QSizePolicy sp = sizePolicy();<a name="l00380"></a>00380             sp.transpose();<a name="l00381"></a>00381             setSizePolicy(sp);<a name="l00382"></a>00382 <a name="l00383"></a>00383 <span class="preprocessor">#if QT_VERSION &gt;= 0x040000</span><a name="l00384"></a>00384 <span class="preprocessor"></span>            setAttribute(Qt::WA_WState_OwnSizePolicy, <span class="keyword">false</span>);<a name="l00385"></a>00385 <span class="preprocessor">#else</span><a name="l00386"></a>00386 <span class="preprocessor"></span>            clearWState( WState_OwnSizePolicy );<a name="l00387"></a>00387 <span class="preprocessor">#endif</span><a name="l00388"></a>00388 <span class="preprocessor"></span>        }<a name="l00389"></a>00389     }<a name="l00390"></a>00390 <a name="l00391"></a>00391     d_data-&gt;orientation = o;<a name="l00392"></a>00392     <a class="code" href="class_qwt_thermo.html#29ce009b8b0546b7ce04936d27fb8364">layoutThermo</a>();<a name="l00393"></a>00393 }<a name="l00394"></a>00394 <a name="l00409"></a><a class="code" href="class_qwt_thermo.html#4dac08b98a634918178bc69f3352cffd">00409</a> <span class="keywordtype">void</span> <a class="code" href="class_qwt_thermo.html#4dac08b98a634918178bc69f3352cffd">QwtThermo::setScalePosition</a>(<a class="code" href="class_qwt_thermo.html#adfd670812eef5a798dcdb58cffb039b">ScalePos</a> s)<a name="l00410"></a>00410 {<a name="l00411"></a>00411     <span class="keywordflow">if</span> ((s == BottomScale) || (s == TopScale))<a name="l00412"></a>00412         <a class="code" href="class_qwt_thermo.html#c75f2d908e4e9315ac764cfc2dc920e1">setOrientation</a>(Qt::Horizontal, s);<a name="l00413"></a>00413     <span class="keywordflow">else</span> <span class="keywordflow">if</span> ((s == LeftScale) || (s == RightScale))<a name="l00414"></a>00414         <a class="code" href="class_qwt_thermo.html#c75f2d908e4e9315ac764cfc2dc920e1">setOrientation</a>(Qt::Vertical, s);<a name="l00415"></a>00415     <span class="keywordflow">else</span><a name="l00416"></a>00416         <a class="code" href="class_qwt_thermo.html#c75f2d908e4e9315ac764cfc2dc920e1">setOrientation</a>(d_data-&gt;orientation, NoScale);<a name="l00417"></a>00417 }<a name="l00418"></a>00418 <a name="l00420"></a><a class="code" href="class_qwt_thermo.html#4eef07dad032e3e6d65b3e9ece076190">00420</a> <a class="code" href="class_qwt_thermo.html#adfd670812eef5a798dcdb58cffb039b">QwtThermo::ScalePos</a> <a class="code" href="class_qwt_thermo.html#4eef07dad032e3e6d65b3e9ece076190">QwtThermo::scalePosition</a>()<span class="keyword"> const</span><a name="l00421"></a>00421 <span class="keyword"></span>{<a name="l00422"></a>00422     <span class="keywordflow">return</span> d_data-&gt;scalePos;<a name="l00423"></a>00423 }<a name="l00424"></a>00424 <a name="l00426"></a><a class="code" href="class_qwt_thermo.html#20c19809bb9674a2e1ad2f2501a3d44a">00426</a> <span class="keywordtype">void</span> <a class="code" href="class_qwt_thermo.html#20c19809bb9674a2e1ad2f2501a3d44a">QwtThermo::fontChange</a>(<span class="keyword">const</span> QFont &amp;f)<a name="l00427"></a>00427 {<a name="l00428"></a>00428     QWidget::fontChange( f );<a name="l00429"></a>00429     <a class="code" href="class_qwt_thermo.html#29ce009b8b0546b7ce04936d27fb8364">layoutThermo</a>();<a name="l00430"></a>00430 }<a name="l00431"></a>00431 <a name="l00433"></a><a class="code" href="class_qwt_thermo.html#3f2f5077580235a5a776805a9721c8ba">00433</a> <span class="keywordtype">void</span> <a class="code" href="class_qwt_thermo.html#3f2f5077580235a5a776805a9721c8ba">QwtThermo::scaleChange</a>()<a name="l00434"></a>00434 {<a name="l00435"></a>00435     update();<a name="l00436"></a>00436     <a class="code" href="class_qwt_thermo.html#29ce009b8b0546b7ce04936d27fb8364">layoutThermo</a>();<a name="l00437"></a>00437 }<a name="l00438"></a>00438 <a name="l00440"></a><a class="code" href="class_qwt_thermo.html#1208e039b825fa252e37c3c442a21a83">00440</a> <span class="keywordtype">void</span> <a class="code" href="class_qwt_thermo.html#1208e039b825fa252e37c3c442a21a83">QwtThermo::drawThermo</a>(QPainter *p)<a name="l00441"></a>00441 {<a name="l00442"></a>00442     <span class="keywordtype">int</span> alarm  = 0, taval = 0;<a name="l00443"></a>00443 <a name="l00444"></a>00444     QRect fRect;<a name="l00445"></a>00445     QRect aRect;<a name="l00446"></a>00446     QRect bRect;<a name="l00447"></a>00447 <a name="l00448"></a>00448     <span class="keywordtype">int</span> inverted = ( d_data-&gt;maxValue &lt; d_data-&gt;minValue );<a name="l00449"></a>00449 <a name="l00450"></a>00450     <span class="comment">//</span><a name="l00451"></a>00451     <span class="comment">//  Determine if value exceeds alarm threshold.</span><a name="l00452"></a>00452     <span class="comment">//  Note: The alarm value is allowed to lie</span><a name="l00453"></a>00453     <span class="comment">//        outside the interval (minValue, maxValue).</span><a name="l00454"></a>00454     <span class="comment">//</span><a name="l00455"></a>00455     <span class="keywordflow">if</span> (d_data-&gt;alarmEnabled)<a name="l00456"></a>00456     {<a name="l00457"></a>00457         <span class="keywordflow">if</span> (inverted)<a name="l00458"></a>00458         {<a name="l00459"></a>00459             alarm = ((d_data-&gt;alarmLevel &gt;= d_data-&gt;maxValue)<a name="l00460"></a>00460                  &amp;&amp; (d_data-&gt;alarmLevel &lt;= d_data-&gt;minValue)<a name="l00461"></a>00461                  &amp;&amp; (d_data-&gt;value &gt;= d_data-&gt;alarmLevel));<a name="l00462"></a>00462         <a name="l00463"></a>00463         }<a name="l00464"></a>00464         <span class="keywordflow">else</span><a name="l00465"></a>00465         {<a name="l00466"></a>00466             alarm = (( d_data-&gt;alarmLevel &gt;= d_data-&gt;minValue)<a name="l00467"></a>00467                  &amp;&amp; (d_data-&gt;alarmLevel &lt;= d_data-&gt;maxValue)<a name="l00468"></a>00468                  &amp;&amp; (d_data-&gt;value &gt;= d_data-&gt;alarmLevel));<a name="l00469"></a>00469         }<a name="l00470"></a>00470     }<a name="l00471"></a>00471 <a name="l00472"></a>00472     <span class="comment">//</span><a name="l00473"></a>00473     <span class="comment">//  transform values</span><a name="l00474"></a>00474     <span class="comment">//</span><a name="l00475"></a>00475     <span class="keywordtype">int</span> tval = transform(d_data-&gt;value);<a name="l00476"></a>00476 <a name="l00477"></a>00477     <span class="keywordflow">if</span> (alarm)<a name="l00478"></a>00478        taval = transform(d_data-&gt;alarmLevel);<a name="l00479"></a>00479 <a name="l00480"></a>00480     <span class="comment">//</span><a name="l00481"></a>00481     <span class="comment">//  calculate recangles</span><a name="l00482"></a>00482     <span class="comment">//</span><a name="l00483"></a>00483     <span class="keywordflow">if</span> ( d_data-&gt;orientation == Qt::Horizontal )<a name="l00484"></a>00484     {<a name="l00485"></a>00485         <span class="keywordflow">if</span> (inverted)<a name="l00486"></a>00486         {<a name="l00487"></a>00487             bRect.setRect(d_data-&gt;thermoRect.x(), d_data-&gt;thermoRect.y(),

⌨️ 快捷键说明

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