• <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>

            逛奔的蝸牛

            我不聰明,但我會(huì)很努力

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

            在寫(xiě)一些需要精確布局或者排版的軟件時(shí)候,我們需要知道文本的寬度和高度,保證我們?cè)谶m當(dāng)?shù)淖鴺?biāo)中使用drawText。例如,我在做一個(gè)簡(jiǎn)單的掃雷軟件時(shí),希望把每個(gè)格子附近的雷數(shù)給顯示在小格子里,如下圖所示,就需要這樣的功能。
            mines

            不同的字體,字寬字高都是不一樣的。所以計(jì)算文本寬度的是一個(gè)和字體相關(guān)的一個(gè)類(lèi)QFontMetrics。

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

            可以用fm.width(text)獲得你想處理的字串text的寬度。而高度對(duì)于所有的字都是一樣的,可以用 fm.ascent()+fm.descent()來(lái)實(shí)現(xiàn)。ascent是指從一個(gè)字的基線(xiàn)(baseline)到最頂部的距離,descent是指一個(gè) 字的基線(xiàn)到最底部的距離。關(guān)于字體的一些術(shù)語(yǔ),請(qǐng)參考
            http://book.csdn.net/bookfiles/308/10030812802.shtm

            要記住,QPainter的drawText畫(huà)字的基點(diǎn)坐標(biāo)是字串的基線(xiàn)(不是底部,也不是頂部,而是下部)。看下面的貼圖
            drawtext1

            所以,如果你想在坐標(biāo)(0,0,20,20)的框正中畫(huà)一個(gè)字的話(huà),可以使用

            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 逛奔的蝸牛 閱讀(4221) 評(píng)論(0)  編輯 收藏 引用 所屬分類(lèi): Qt
            日韩美女18网站久久精品| 7777久久亚洲中文字幕| 欧美午夜A∨大片久久| 人妻无码精品久久亚瑟影视| 亚洲国产精品无码久久久蜜芽| 久久99国内精品自在现线| 88久久精品无码一区二区毛片 | 亚洲精品无码久久毛片| 亚洲香蕉网久久综合影视| 亚洲国产精品久久久久婷婷软件| 一级女性全黄久久生活片免费 | 人人妻久久人人澡人人爽人人精品| 人妻少妇久久中文字幕一区二区 | 久久99精品国产99久久| 一级a性色生活片久久无少妇一级婬片免费放 | 久久精品人妻一区二区三区| 精品久久久无码21p发布| 国内精品久久久久久麻豆| 无码精品久久一区二区三区| 国产精品美女久久久m| 少妇无套内谢久久久久| 很黄很污的网站久久mimi色| 精品久久久久久亚洲精品| 久久天天躁狠狠躁夜夜不卡| 久久久噜噜噜久久| 国产精品久久久久乳精品爆| 国产精品久久波多野结衣| 欧美丰满熟妇BBB久久久| 久久综合亚洲鲁鲁五月天| 久久精品18| 欧美午夜A∨大片久久| 久久精品亚洲男人的天堂| 久久精品免费大片国产大片| 国产精品无码久久综合网| 亚洲午夜精品久久久久久人妖| 99久久免费国产精品热| 久久久噜噜噜久久中文福利| 精品久久久久久国产潘金莲| 国产精品美女久久久久网| 伊人久久大香线焦综合四虎| 99久久精品免费观看国产|