• 调整QT字体大小的一小段代码


    在做一些应用的时候,可能会随时动态的改变一些控件的大小(比如QLabel),如果控件里的文字的大小不随之变化的话,就很容易出现太小,或者超出控件的情况发生。

    可以使用下面的代码来调整控件字体的大小:

        int cellwidth=26;

        
    int fontsize=1;
        
    while(true)
        {
            QFont tmp(
    "Arial",fontsize);
            tmp.setPointSize(fontsize);
            QFontMetricsF fm(tmp);
            qreal pixelsWide 
    = fm.width("8");
            qreal pixelsHigh 
    = fm.height();
            
    if(pixelsWide>=cellwidth || pixelsHigh >= cellwidth)
                
    break;
            
    ++fontsize;
        }
        QFont font(
    "Arial",fontsize);

    上面的代码是要求一个存放个位数字的方形控件的字体大小。假定控件的宽和高背限制为cellwidth变量的值。

    然后逐次循环创建fontsize大小的字体,通过QFontMetricsF类取得该字体应用到某一段文字(这里用了“8”)的宽和高。再与之前的cellwidth进行比较,超过时结束循环。

    此时fontsize存的就是符合要求的字体大小了。。。。

    很简单的代码,很简单的需求,似乎不值得一提。:)不过且抛出这个砖块看看。。

    http://code.google.com/p/klsudoku
    Email: ttylikl@qq.com
    QQ群:106249 ( Sudoku 群) QQ群:94388010( C++ 群)
  • 相关阅读:
    排序
    洛谷P1071 字符串
    编写ui自动化问题总结
    fastdfs跨服务器数据迁移
    JMeter随机上传附件
    抓包工具介绍
    idea2019.1版本永久版破解
    使用nodejs模拟http接口的返回
    配置RHEL&CentOS网络说明
    linux测试最最最最基本操作命令
  • 原文地址:https://www.cnblogs.com/ttylikl/p/1520755.html
Copyright © 2020-2023  润新知