<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                本系列所有文章可以在這里查看[http://blog.csdn.net/cloud_castle/article/category/2123873](http://blog.csdn.net/cloud_castle/article/category/2123873) 接上文[](http://blog.csdn.net/cloud_castle/article/details/39251931)[Qt5官方demo解析集33——Qt Quick Examples - Window and Screen](http://blog.csdn.net/cloud_castle/article/details/39291069) 好像有一段時間沒有更新這個系列了,一方面是很多的事摻雜著一起來了,稍微比原來忙了一些;但時間哪有擠不出來的呢,所以更重要的一個原因其實是很難找到一個特別合適的Demo來做這個主題。有的Demo內容很偏很少項目在做,有的Demo又過于基礎,我總希望能挑出一些大家經常能接觸得到又需要了解的知識點~ 因為Qt的每一個官方Demo都有一個關注的點,每次把所有的代碼都貼出來可能這個系列的重復部分會越來越多。。。所以從本文開始,我們只把關鍵代碼挑出來濃墨重彩地介紹一下(*^__^*)? 好了,廢話少說,進入今天的正題吧:Concentric Circles Example 大家都知道在Qt里面繪制一個橢圓可以在paintEvent()中使用 ~~~ painter.drawEllipse(QRect(-diameter / 2, -diameter / 2, diameter, diameter)); ~~~ 那么我們這樣繪制多個同心圓的效果大概像下面這樣: (在放大鏡效果下對Demo運行效果的截圖) ![](https://box.kancloud.cn/2016-01-18_569cbd0a0b877.jpg) 首先讓我們將這及其不圓潤的邊緣放在一邊,細心的你可能會發現,這些同心圓總是兩兩之間挨得特別近,而我們明明是繪制的等距的同心圓?其實答案很簡單,它就是對整型坐標值進行計算后四舍五入得到的結果。知道問題的來源后,解決起來就容易了。 Qt很貼心地為我們提供了另一個接受QRectF()參數的drawEllipse(): ~~~ painter.drawEllipse(QRectF(-diameter?/?2.0,?-diameter?/?2.0,?diameter,?diameter)); ~~~ ![](https://box.kancloud.cn/2016-01-18_569cbd0a1adc7.jpg) 看看有沒有好一點?一方面我們確實得到了等距的同心圓,另一方面也顯得圓潤了些,上圖中那么顯眼的直線也沒那么長了。 如果想要進一步得到更加圓潤的圓,我們可以設置painter的抗鋸齒效果QPainter::Antialiasing,簡單點說它是通過采樣算法將在圖形邊緣會造成鋸齒的像素與周圍的像素作一個平均的運算,并增加像素的數目,這樣來形成區域像素點的平滑過渡的效果。不過,這樣做的副作用是圖像會顯得有些模糊。 drawEllipse(QRect()) + 抗鋸齒: ~~~ painter.setRenderHint(QPainter::Antialiasing); painter.drawEllipse(QRect(-diameter?/?2,?-diameter?/?2,?diameter,?diameter)); ~~~ ![](https://box.kancloud.cn/2016-01-18_569cbd0a272b8.jpg) drawEllipse(QRectF()) + 抗鋸齒: ~~~ painter.setRenderHint(QPainter::Antialiasing); painter.drawEllipse(QRectF(-diameter?/?2.0,?-diameter?/?2.0,?diameter,?diameter)); ~~~ ![](https://box.kancloud.cn/2016-01-18_569cbd0a395e9.jpg) 最后我們還是看下整個程序的界面吧: ![](https://box.kancloud.cn/2016-01-18_569cbd0a4a920.jpg)
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看