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

📄 qwt__text_8cpp-source.html

📁 QWT5.01用于Qt开发的二维图形库程序
💻 HTML
📖 第 1 页 / 共 4 页
字号:
<a name="l00520"></a>00520 <span class="preprocessor"></span><a name="l00521"></a>00521     <span class="keywordflow">if</span> ( !d_layoutCache-&gt;textSize.isValid() <a name="l00522"></a>00522         || d_layoutCache-&gt;font != font )<a name="l00523"></a>00523     {<a name="l00524"></a>00524         d_layoutCache-&gt;textSize = d_data-&gt;textEngine-&gt;textSize(<a name="l00525"></a>00525             font, d_data-&gt;renderFlags, d_data-&gt;text);<a name="l00526"></a>00526         d_layoutCache-&gt;font = font;<a name="l00527"></a>00527     }<a name="l00528"></a>00528 <a name="l00529"></a>00529     QSize sz = d_layoutCache-&gt;textSize;<a name="l00530"></a>00530 <a name="l00531"></a>00531     <span class="keyword">const</span> <a class="code" href="class_qwt_metrics_map.html">QwtMetricsMap</a> map = <a class="code" href="class_qwt_painter.html#3de95bfc83c9beee537404b41749bad5">QwtPainter::metricsMap</a>();<a name="l00532"></a>00532 <a name="l00533"></a>00533     <span class="keywordflow">if</span> ( d_data-&gt;layoutAttributes &amp; MinimumLayout )<a name="l00534"></a>00534     {<a name="l00535"></a>00535         <span class="keywordtype">int</span> left, right, top, bottom;<a name="l00536"></a>00536         d_data-&gt;textEngine-&gt;textMargins(font, d_data-&gt;text,<a name="l00537"></a>00537             left, right, top, bottom);<a name="l00538"></a>00538         sz -= QSize(left + right, top + bottom);<a name="l00539"></a>00539 <span class="preprocessor">#if QT_VERSION &gt;= 0x040000</span><a name="l00540"></a>00540 <span class="preprocessor"></span>        <span class="keywordflow">if</span> ( !map.<a class="code" href="class_qwt_metrics_map.html#35701bcf62dea107f4211fcc0adbf35e">isIdentity</a>() )<a name="l00541"></a>00541         {<a name="l00542"></a>00542 #ifdef __GNUC__<a name="l00543"></a>00543 #endif<a name="l00544"></a>00544             <span class="comment">/*</span><a name="l00545"></a>00545 <span class="comment">                When printing in high resolution, the tick labels</span><a name="l00546"></a>00546 <span class="comment">                of are cut of. We need to find out why, but for</span><a name="l00547"></a>00547 <span class="comment">                the moment we add a couple of pixels instead.</span><a name="l00548"></a>00548 <span class="comment">             */</span><a name="l00549"></a>00549             sz += QSize(3, 0);<a name="l00550"></a>00550         }<a name="l00551"></a>00551 <span class="preprocessor">#endif</span><a name="l00552"></a>00552 <span class="preprocessor"></span>    }<a name="l00553"></a>00553 <a name="l00554"></a>00554     sz = map.<a class="code" href="class_qwt_metrics_map.html#3b2300920bf39300b0b5c969e296f5e1">screenToLayout</a>(sz);<a name="l00555"></a>00555     <span class="keywordflow">return</span> sz;<a name="l00556"></a>00556 }<a name="l00557"></a>00557 <a name="l00564"></a><a class="code" href="class_qwt_text.html#3907eb112ff2259adbaad4c433178354">00564</a> <span class="keywordtype">void</span> <a class="code" href="class_qwt_text.html#3907eb112ff2259adbaad4c433178354">QwtText::draw</a>(QPainter *painter, <span class="keyword">const</span> QRect &amp;rect)<span class="keyword"> const</span><a name="l00565"></a>00565 <span class="keyword"></span>{<a name="l00566"></a>00566     <span class="keywordflow">if</span> ( d_data-&gt;paintAttributes &amp; PaintBackground )<a name="l00567"></a>00567     {<a name="l00568"></a>00568         <span class="keywordflow">if</span> ( d_data-&gt;backgroundPen != Qt::NoPen || <a name="l00569"></a>00569             d_data-&gt;backgroundBrush != Qt::NoBrush )<a name="l00570"></a>00570         {<a name="l00571"></a>00571             painter-&gt;save();<a name="l00572"></a>00572             painter-&gt;setPen(d_data-&gt;backgroundPen);<a name="l00573"></a>00573             painter-&gt;setBrush(d_data-&gt;backgroundBrush);<a name="l00574"></a>00574             <a class="code" href="class_qwt_painter.html#9d606b6a681b9e1d0e0823c8a169ac7e">QwtPainter::drawRect</a>(painter, rect);<a name="l00575"></a>00575             painter-&gt;restore();<a name="l00576"></a>00576         }<a name="l00577"></a>00577     }<a name="l00578"></a>00578 <a name="l00579"></a>00579     painter-&gt;save();<a name="l00580"></a>00580 <a name="l00581"></a>00581     <span class="keywordflow">if</span> ( d_data-&gt;paintAttributes &amp; PaintUsingTextFont )<a name="l00582"></a>00582     {<a name="l00583"></a>00583         painter-&gt;setFont(d_data-&gt;font);<a name="l00584"></a>00584     }<a name="l00585"></a>00585 <a name="l00586"></a>00586     <span class="keywordflow">if</span> ( d_data-&gt;paintAttributes &amp; PaintUsingTextColor )<a name="l00587"></a>00587     {<a name="l00588"></a>00588         <span class="keywordflow">if</span> ( d_data-&gt;color.isValid() )<a name="l00589"></a>00589             painter-&gt;setPen(d_data-&gt;color);<a name="l00590"></a>00590     }<a name="l00591"></a>00591 <a name="l00592"></a>00592     QRect expandedRect = rect;<a name="l00593"></a>00593     <span class="keywordflow">if</span> ( d_data-&gt;layoutAttributes &amp; MinimumLayout )<a name="l00594"></a>00594     {<a name="l00595"></a>00595 <span class="preprocessor">#if QT_VERSION &lt; 0x040000</span><a name="l00596"></a>00596 <span class="preprocessor"></span>        <span class="keyword">const</span> QFont <a class="code" href="class_qwt_text.html#76db41eeae98fbfa0933a38328a240ac">font</a>(painter-&gt;font());<a name="l00597"></a>00597 <span class="preprocessor">#else</span><a name="l00598"></a>00598 <span class="preprocessor"></span>        <span class="comment">// We want to calculate in screen metrics. So</span><a name="l00599"></a>00599         <span class="comment">// we need a font that uses screen metrics</span><a name="l00600"></a>00600 <a name="l00601"></a>00601         <span class="keyword">const</span> QFont <a class="code" href="class_qwt_text.html#76db41eeae98fbfa0933a38328a240ac">font</a>(painter-&gt;font(), QApplication::desktop());<a name="l00602"></a>00602 <span class="preprocessor">#endif</span><a name="l00603"></a>00603 <span class="preprocessor"></span><a name="l00604"></a>00604         <span class="keywordtype">int</span> left, right, top, bottom;<a name="l00605"></a>00605         d_data-&gt;textEngine-&gt;textMargins(<a name="l00606"></a>00606             <a class="code" href="class_qwt_text.html#76db41eeae98fbfa0933a38328a240ac">font</a>, d_data-&gt;text,<a name="l00607"></a>00607             left, right, top, bottom);<a name="l00608"></a>00608 <a name="l00609"></a>00609         <span class="keyword">const</span> <a class="code" href="class_qwt_metrics_map.html">QwtMetricsMap</a> map = <a class="code" href="class_qwt_painter.html#3de95bfc83c9beee537404b41749bad5">QwtPainter::metricsMap</a>();<a name="l00610"></a>00610         left = map.<a class="code" href="class_qwt_metrics_map.html#e1cce24cb234af56b3e52bfad1d153ac">screenToLayoutX</a>(left);<a name="l00611"></a>00611         right = map.<a class="code" href="class_qwt_metrics_map.html#e1cce24cb234af56b3e52bfad1d153ac">screenToLayoutX</a>(right);<a name="l00612"></a>00612         top = map.<a class="code" href="class_qwt_metrics_map.html#8965c1ac879173a2dcc609f4ed911a8e">screenToLayoutY</a>(top);<a name="l00613"></a>00613         bottom = map.<a class="code" href="class_qwt_metrics_map.html#8965c1ac879173a2dcc609f4ed911a8e">screenToLayoutY</a>(bottom);<a name="l00614"></a>00614 <a name="l00615"></a>00615         expandedRect.setTop(rect.top() - top);<a name="l00616"></a>00616         expandedRect.setBottom(rect.bottom() + bottom);<a name="l00617"></a>00617         expandedRect.setLeft(rect.left() - left);<a name="l00618"></a>00618         expandedRect.setRight(rect.right() + right);<a name="l00619"></a>00619     }<a name="l00620"></a>00620 <a name="l00621"></a>00621     d_data-&gt;textEngine-&gt;draw(painter, expandedRect, <a name="l00622"></a>00622         d_data-&gt;renderFlags, d_data-&gt;text);<a name="l00623"></a>00623 <a name="l00624"></a>00624     painter-&gt;restore();<a name="l00625"></a>00625 }<a name="l00626"></a>00626 <a name="l00640"></a><a class="code" href="class_qwt_text.html#053d8fdb4de77bd3b6f2eb0ecd3980ca">00640</a> <span class="keyword">const</span> <a class="code" href="class_qwt_text_engine.html">QwtTextEngine</a> *<a class="code" href="class_qwt_text.html#053d8fdb4de77bd3b6f2eb0ecd3980ca">QwtText::textEngine</a>(<span class="keyword">const</span> QString &amp;text,<a name="l00641"></a>00641     <a class="code" href="class_qwt_text.html#63e0d6a59a427a37ed0bfa71b782fd76">QwtText::TextFormat</a> format)<a name="l00642"></a>00642 {<a name="l00643"></a>00643     <span class="keywordflow">if</span> ( engineDict == NULL )<a name="l00644"></a>00644         engineDict = <span class="keyword">new</span> QwtTextEngineDict();<a name="l00645"></a>00645 <a name="l00646"></a>00646     <span class="keywordflow">return</span> engineDict-&gt;textEngine(text, format);<a name="l00647"></a>00647 }<a name="l00648"></a>00648 <a name="l00667"></a><a class="code" href="class_qwt_text.html#ef6a1e71b1feba3116ce69f6c9de70ad">00667</a> <span class="keywordtype">void</span> <a class="code" href="class_qwt_text.html#ef6a1e71b1feba3116ce69f6c9de70ad">QwtText::setTextEngine</a>(<a class="code" href="class_qwt_text.html#63e0d6a59a427a37ed0bfa71b782fd76">QwtText::TextFormat</a> format, <a name="l00668"></a>00668     <a class="code" href="class_qwt_text_engine.html">QwtTextEngine</a> *engine)<a name="l00669"></a>00669 {<a name="l00670"></a>00670     <span class="keywordflow">if</span> ( engineDict == NULL )<a name="l00671"></a>00671         engineDict = <span class="keyword">new</span> QwtTextEngineDict();<a name="l00672"></a>00672 <a name="l00673"></a>00673     engineDict-&gt;setTextEngine(format, engine);<a name="l00674"></a>00674 }<a name="l00675"></a>00675 <a name="l00687"></a><a class="code" href="class_qwt_text.html#2828c4976bd30572d236811bc30037be">00687</a> <span class="keyword">const</span> <a class="code" href="class_qwt_text_engine.html">QwtTextEngine</a> *<a class="code" href="class_qwt_text.html#053d8fdb4de77bd3b6f2eb0ecd3980ca">QwtText::textEngine</a>(<a class="code" href="class_qwt_text.html#63e0d6a59a427a37ed0bfa71b782fd76">QwtText::TextFormat</a> format)<a name="l00688"></a>00688 {<a name="l00689"></a>00689     <span class="keywordflow">if</span> ( engineDict == NULL )<a name="l00690"></a>00690         engineDict = <span class="keyword">new</span> QwtTextEngineDict();<a name="l00691"></a>00691 <a name="l00692"></a>00692     <span class="keywordflow">return</span> engineDict-&gt;textEngine(format);<a name="l00693"></a>00693 }</pre></div><hr size="1"><address style="align: right;"><small>Generated on Mon Feb 26 21:22:39 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 + -