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

📄 qwt__dial_8cpp-source.html

📁 QWT5.01用于Qt开发的二维图形库程序
💻 HTML
📖 第 1 页 / 共 5 页
字号:
<a name="l00601"></a>00601     <span class="keyword">const</span> QRect insideScaleRect = <a class="code" href="class_qwt_dial.html#0986903d2c6bcbf3cc36dfb094f59d47">scaleContentsRect</a>();<a name="l00602"></a>00602 <span class="preprocessor">#if QT_VERSION &lt; 0x040000</span><a name="l00603"></a>00603 <span class="preprocessor"></span>    <span class="keywordflow">if</span> ( colorGroup().brush(QColorGroup::Foreground) !=<a name="l00604"></a>00604         colorGroup().brush(QColorGroup::Base) )<a name="l00605"></a>00605 <span class="preprocessor">#else</span><a name="l00606"></a>00606 <span class="preprocessor"></span>    <span class="keywordflow">if</span> ( palette().brush(QPalette::Foreground) !=<a name="l00607"></a>00607         palette().brush(QPalette::Base) )<a name="l00608"></a>00608 <span class="preprocessor">#endif</span><a name="l00609"></a>00609 <span class="preprocessor"></span>    {<a name="l00610"></a>00610         painter-&gt;save();<a name="l00611"></a>00611         painter-&gt;setPen(Qt::NoPen);<a name="l00612"></a>00612 <a name="l00613"></a>00613 <span class="preprocessor">#if QT_VERSION &lt; 0x040000</span><a name="l00614"></a>00614 <span class="preprocessor"></span>        painter-&gt;setBrush(colorGroup().brush(QColorGroup::Foreground));<a name="l00615"></a>00615 <span class="preprocessor">#else</span><a name="l00616"></a>00616 <span class="preprocessor"></span>        painter-&gt;setBrush(palette().brush(QPalette::Foreground));<a name="l00617"></a>00617 <span class="preprocessor">#endif</span><a name="l00618"></a>00618 <span class="preprocessor"></span><a name="l00619"></a>00619         painter-&gt;drawEllipse(insideScaleRect.x() - 1, insideScaleRect.y() - 1,<a name="l00620"></a>00620             insideScaleRect.width(), insideScaleRect.height() );<a name="l00621"></a>00621 <a name="l00622"></a>00622         painter-&gt;restore();<a name="l00623"></a>00623     }<a name="l00624"></a>00624 <a name="l00625"></a>00625     <span class="keyword">const</span> QPoint center = insideScaleRect.center();<a name="l00626"></a>00626     <span class="keyword">const</span> <span class="keywordtype">int</span> radius = insideScaleRect.width() / 2;<a name="l00627"></a>00627 <a name="l00628"></a>00628     painter-&gt;save();<a name="l00629"></a>00629     <a class="code" href="class_qwt_dial.html#25ef28fbf217e510b60f2b01c14a1fc9">drawScaleContents</a>(painter, center, radius);<a name="l00630"></a>00630     painter-&gt;restore();<a name="l00631"></a>00631 <a name="l00632"></a>00632     <span class="keywordtype">double</span> direction = d_data-&gt;origin;<a name="l00633"></a>00633 <a name="l00634"></a>00634     <span class="keywordflow">if</span> (<a class="code" href="class_qwt_abstract_slider.html#87c750f098cb5f70306a7908339cb88e">isValid</a>())<a name="l00635"></a>00635     {<a name="l00636"></a>00636         direction = d_data-&gt;origin + d_data-&gt;minScaleArc;<a name="l00637"></a>00637         <span class="keywordflow">if</span> ( <a class="code" href="class_qwt_double_range.html#215275a1a8b4218a424ee8444c7fe409">maxValue</a>() &gt; <a class="code" href="class_qwt_double_range.html#8b8650a6f8a96144d3af21207ee71637">minValue</a>() &amp;&amp; d_data-&gt;maxScaleArc &gt; d_data-&gt;minScaleArc )<a name="l00638"></a>00638         {<a name="l00639"></a>00639             <span class="keyword">const</span> <span class="keywordtype">double</span> ratio = <a name="l00640"></a>00640                 (<a class="code" href="class_qwt_double_range.html#7777cf257c812579c4891512f1b6cad0">value</a>() - <a class="code" href="class_qwt_double_range.html#8b8650a6f8a96144d3af21207ee71637">minValue</a>()) / (<a class="code" href="class_qwt_double_range.html#215275a1a8b4218a424ee8444c7fe409">maxValue</a>() - <a class="code" href="class_qwt_double_range.html#8b8650a6f8a96144d3af21207ee71637">minValue</a>());<a name="l00641"></a>00641             direction += ratio * (d_data-&gt;maxScaleArc - d_data-&gt;minScaleArc);<a name="l00642"></a>00642         }<a name="l00643"></a>00643 <a name="l00644"></a>00644         <span class="keywordflow">if</span> ( direction &gt;= 360.0 )<a name="l00645"></a>00645             direction -= 360.0;<a name="l00646"></a>00646     }<a name="l00647"></a>00647 <a name="l00648"></a>00648     <span class="keywordtype">double</span> <a class="code" href="class_qwt_dial.html#5d7a8b9094bcc3fb82b31c3ac9ad706d">origin</a> = d_data-&gt;origin;<a name="l00649"></a>00649     <span class="keywordflow">if</span> ( <a class="code" href="class_qwt_dial.html#fd95a47735c0cfe963dfacd1a6a36a6f">mode</a>() == RotateScale )<a name="l00650"></a>00650     {<a name="l00651"></a>00651         origin -= direction - d_data-&gt;origin;<a name="l00652"></a>00652         direction = d_data-&gt;origin;<a name="l00653"></a>00653     }<a name="l00654"></a>00654 <a name="l00655"></a>00655     painter-&gt;save();<a name="l00656"></a>00656     <a class="code" href="class_qwt_dial.html#3c08d8596771debf165ed5492080a237">drawScale</a>(painter, center, radius, origin, d_data-&gt;minScaleArc, d_data-&gt;maxScaleArc);<a name="l00657"></a>00657     painter-&gt;restore();<a name="l00658"></a>00658 <a name="l00659"></a>00659     <span class="keywordflow">if</span> ( <a class="code" href="class_qwt_abstract_slider.html#87c750f098cb5f70306a7908339cb88e">isValid</a>() )<a name="l00660"></a>00660     {<a name="l00661"></a>00661         QPalette::ColorGroup cg;<a name="l00662"></a>00662         <span class="keywordflow">if</span> ( isEnabled() )<a name="l00663"></a>00663             cg = hasFocus() ? QPalette::Active : QPalette::Inactive;<a name="l00664"></a>00664         <span class="keywordflow">else</span><a name="l00665"></a>00665             cg = QPalette::Disabled;<a name="l00666"></a>00666 <a name="l00667"></a>00667         painter-&gt;save();<a name="l00668"></a>00668         <a class="code" href="class_qwt_dial.html#c6d173aed044964a21366bcdc34ae212">drawNeedle</a>(painter, center, radius, direction, cg);<a name="l00669"></a>00669         painter-&gt;restore();<a name="l00670"></a>00670     }<a name="l00671"></a>00671 }<a name="l00672"></a>00672 <a name="l00682"></a><a class="code" href="class_qwt_dial.html#c6d173aed044964a21366bcdc34ae212">00682</a> <span class="keywordtype">void</span> <a class="code" href="class_qwt_dial.html#c6d173aed044964a21366bcdc34ae212">QwtDial::drawNeedle</a>(QPainter *painter, <span class="keyword">const</span> QPoint &amp;center, <a name="l00683"></a>00683     <span class="keywordtype">int</span> radius, <span class="keywordtype">double</span> direction, QPalette::ColorGroup cg)<span class="keyword"> const</span><a name="l00684"></a>00684 <span class="keyword"></span>{<a name="l00685"></a>00685     <span class="keywordflow">if</span> ( d_data-&gt;needle )<a name="l00686"></a>00686     {<a name="l00687"></a>00687         direction = 360.0 - direction; <span class="comment">// counter clockwise</span><a name="l00688"></a>00688         d_data-&gt;needle-&gt;draw(painter, center, radius, direction, cg);<a name="l00689"></a>00689     }<a name="l00690"></a>00690 }<a name="l00691"></a>00691 <a name="l00704"></a><a class="code" href="class_qwt_dial.html#3c08d8596771debf165ed5492080a237">00704</a> <span class="keywordtype">void</span> <a class="code" href="class_qwt_dial.html#3c08d8596771debf165ed5492080a237">QwtDial::drawScale</a>(QPainter *painter, <span class="keyword">const</span> QPoint &amp;center,<a name="l00705"></a>00705     <span class="keywordtype">int</span> radius, <span class="keywordtype">double</span> origin, <span class="keywordtype">double</span> minArc, <span class="keywordtype">double</span> maxArc)<span class="keyword"> const</span><a name="l00706"></a>00706 <span class="keyword"></span>{<a name="l00707"></a>00707     <span class="keywordflow">if</span> ( d_data-&gt;scaleDraw == NULL )<a name="l00708"></a>00708         <span class="keywordflow">return</span>;<a name="l00709"></a>00709 <a name="l00710"></a>00710     origin -= 270.0; <span class="comment">// hardcoded origin of QwtScaleDraw</span><a name="l00711"></a>00711 <a name="l00712"></a>00712     <span class="keywordtype">double</span> angle = maxArc - minArc;<a name="l00713"></a>00713     <span class="keywordflow">if</span> ( angle &gt; 360.0 )<a name="l00714"></a>00714         angle = fmod(angle, 360.0);<a name="l00715"></a>00715 <a name="l00716"></a>00716     minArc += origin;<a name="l00717"></a>00717     <span class="keywordflow">if</span> ( minArc &lt; -360.0 )<a name="l00718"></a>00718         minArc = fmod(minArc, 360.0);<a name="l00719"></a>00719     <a name="l00720"></a>00720     maxArc = minArc + angle;<a name="l00721"></a>00721     <span class="keywordflow">if</span> ( maxArc &gt; 360.0 )<a name="l00722"></a>00722     {<a name="l00723"></a>00723         <span class="comment">// QwtAbstractScaleDraw::setAngleRange accepts only values</span><a name="l00724"></a>00724         <span class="comment">// in the range [-360.0..360.0]</span><a name="l00725"></a>00725         minArc -= 360.0;<a name="l00726"></a>00726         maxArc -= 360.0;<a name="l00727"></a>00727     }<a name="l00728"></a>00728     <a name="l00729"></a>00729     painter-&gt;setFont(font());<a name="l00730"></a>00730 <a name="l00731"></a>00731     d_data-&gt;scaleDraw-&gt;setAngleRange(minArc, maxArc);<a name="l00732"></a>00732     d_data-&gt;scaleDraw-&gt;setRadius(radius);<a name="l00733"></a>00733     d_data-&gt;scaleDraw-&gt;moveCenter(center);<a name="l00734"></a>00734 <a name="l00735"></a>00735 <span class="preprocessor">#if QT_VERSION &lt; 0x040000</span><a name="l00736"></a>00736 <span class="preprocessor"></span>    QColorGroup cg = colorGroup();<a name="l00737"></a>00737 <a name="l00738"></a>00738     <span class="keyword">const</span> QColor textColor = cg.color(QColorGroup::Text);<a name="l00739"></a>00739     cg.setColor(QColorGroup::Foreground, textColor);<a name="l00740"></a>00740     painter-&gt;setPen(QPen(textColor, d_data-&gt;scaleDraw-&gt;penWidth()));<a name="l00741"></a>00741     <a name="l00742"></a>00742     d_data-&gt;scaleDraw-&gt;draw(painter, cg);<a name="l00743"></a>00743 <span class="preprocessor">#else</span><a name="l00744"></a>00744 <span class="preprocessor"></span>    QPalette pal = palette();<a name="l00745"></a>00745 <a name="l00746"></a>00746     <span class="keyword">const</span> QColor textColor = pal.color(QPalette::Text);<a name="l00747"></a>00747     pal.setColor(QPalette::Foreground, textColor); <span class="comment">//ticks, backbone</span><a name="l00748"></a>00748     <a name="l00749"></a>00749     painter-&gt;setPen(QPen(textColor, d_data-&gt;scaleDraw-&gt;penWidth()));<a name="l00750"></a>00750 <a name="l00751"></a>00751     d_data-&gt;scaleDraw-&gt;draw(painter, pal);<a name="l00752"></a>00752 <span class="preprocessor">#endif</span><a name="l00753"></a>00753 <span class="preprocessor"></span>}<a name="l00754"></a>00754 <a name="l00755"></a><a class="code" href="class_qwt_dial.html#25ef28fbf217e510b60f2b01c14a1fc9">00755</a> <span class="keywordtype">void</span> <a class="code" href="class_qwt_dial.html#25ef28fbf217e510b60f2b01c14a1fc9">QwtDial::drawScaleContents</a>(QPainter *, <a name="l00756"></a>00756     <span class="keyword">const</span> QPoint &amp;, <span class="keywordtype">int</span>)<span class="keyword"> const</span><a name="l00757"></a>00757 <span class="keyword"></span>{<a name="l00758"></a>00758     <span class="comment">// empty default implementation</span><a name="l00759"></a>00759 }<a name="l00760"></a>00760 <a name="l00771"></a><a class="code" href="class_qwt_dial.html#c91311f8777eabdbcf6384f308d34a0c">00771</a> <span class="keywordtype">void</span> <a class="code" href="class_qwt_dial.html#c91311f8777eabdbcf6384f308d34a0c">QwtDial::setNeedle</a>(<a class="code" href="class_qwt_dial_needle.html">QwtDialNeedle</a> *needle)<a name="l00772"></a>00772 {<a name="l00773"></a>00773     <span class="keywordflow">if</span> ( <a class="code" href="class_qwt_dial.html#58ed8cf5aae56c44427b25f691f69b5c">needle</a> != d_data-&gt;needle )<a name="l00774"></a>00774     {<a name="l00775"></a>00775         <span class="keywordflow">if</span> ( d_data-&gt;needle )<a name="l00776"></a>00776             <span class="keyword">delete</span> d_data-&gt;needle;<a name="l00777"></a>00777 <a name="l00778"></a>00778         d_data-&gt;needle = <a class="code" href="class_qwt_dial.html#58ed8cf5aae56c44427b25f691f69b5c">needle</a>;<a name="l00779"></a>00779         update();<a name="l00780"></a>00780     }<a name="l00781"></a>00781 }

⌨️ 快捷键说明

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