• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            逛奔的蝸牛

            我不聰明,但我會很努力

               ::  :: 新隨筆 ::  ::  :: 管理 ::

            在寫一些需要精確布局或者排版的軟件時候,我們需要知道文本的寬度和高度,保證我們在適當的坐標中使用drawText。例如,我在做一個簡單的掃雷軟件時,希望把每個格子附近的雷數給顯示在小格子里,如下圖所示,就需要這樣的功能。
            mines

            不同的字體,字寬字高都是不一樣的。所以計算文本寬度的是一個和字體相關的一個類QFontMetrics。

            QPainter p(this);
            QFontMetrics fm = p.fontMetrics();

            可以用fm.width(text)獲得你想處理的字串text的寬度。而高度對于所有的字都是一樣的,可以用 fm.ascent()+fm.descent()來實現。ascent是指從一個字的基線(baseline)到最頂部的距離,descent是指一個 字的基線到最底部的距離。關于字體的一些術語,請參考
            http://book.csdn.net/bookfiles/308/10030812802.shtm

            要記住,QPainter的drawText畫字的基點坐標是字串的基線(不是底部,也不是頂部,而是下部)。看下面的貼圖
            drawtext1

            所以,如果你想在坐標(0,0,20,20)的框正中畫一個字的話,可以使用

            QPoint pt((20-fm.width(text))/2,(20-(fm.ascent()+fm.descent()))/2+fm.ascent());
            p.drawText(pt,text);
            posted on 2009-09-18 16:18 逛奔的蝸牛 閱讀(4234) 評論(0)  編輯 收藏 引用 所屬分類: Qt
            久久伊人五月丁香狠狠色| av午夜福利一片免费看久久| 51久久夜色精品国产| 亚洲嫩草影院久久精品| 久久久这里有精品中文字幕| 亚洲伊人久久精品影院| 中文精品久久久久国产网址| 一本色道久久88综合日韩精品| 久久九九久精品国产免费直播| 热re99久久精品国产99热| 欧美国产成人久久精品| 亚洲狠狠婷婷综合久久蜜芽| 一本伊大人香蕉久久网手机| 一本色道久久88精品综合| 国产激情久久久久影院老熟女免费| 久久精品国产亚洲AV蜜臀色欲| 国产精品美女久久久久AV福利 | 人妻无码精品久久亚瑟影视 | 久久久久黑人强伦姧人妻| 久久久久久久久久久久中文字幕 | 精品久久久久久久久免费影院 | 天天躁日日躁狠狠久久| 青青草原综合久久大伊人导航| 精品无码久久久久久午夜| 亚洲国产一成人久久精品| 亚洲国产精品狼友中文久久久| 久久久青草青青亚洲国产免观| 狠狠色婷婷久久一区二区| 免费一级欧美大片久久网| 丁香五月综合久久激情| 99久久久国产精品免费无卡顿| 久久人妻少妇嫩草AV蜜桃| 久久这里只有精品视频99| 国产福利电影一区二区三区久久老子无码午夜伦不 | 国内精品久久久久国产盗摄| 91精品国产色综合久久| 久久国产亚洲精品无码| 精品久久8x国产免费观看| 久久精品国产亚洲av水果派 | 99久久综合狠狠综合久久| 久久线看观看精品香蕉国产|