• 6253阅读
  • 6回复

[提问]获取字符串像素宽度出错 [复制链接]

上一主题 下一主题
离线liuxu_lx7
 
只看楼主 倒序阅读 楼主  发表于: 2011-06-08
针对控件:QLineEdit
目地:QLineEdit宽高完全与缩写内容宽高匹配

使用方法:
    QFont font = textEdit.font();
    QFontMetricsF fontMetrics(font);

    QRectF rectText = fontMetrics.boundingRect(pInstance->m_Title.text());

    textEdit.resize(rectText.width(), rectText.height());

出错: 文字有1个字符左右的地方没有显示

请问可能什么原因?或该用什么方法?

离线liuxu_lx7
只看该作者 1楼 发表于: 2011-06-09
没有朋友知道是怎么回事么?
离线liuxu_lx7
只看该作者 2楼 发表于: 2011-06-17
自己顶
离线liuxu_lx7
只看该作者 3楼 发表于: 2011-06-22
至今不清楚算错原因,目前只能用以下方法临时解决:
      
        QFont font = textEdit.font();

        QFontMetricsF fontMetrics(font);

        QString text = textEdit.text();
        text += tr("Z");  // 随便加一个字符


        qreal width = fontMetrics.width(text);
        textEdit.resize(width, height);
        textEdit.setCursorPosition(0);  // 需要,否则第一个字符离textEdit的左边界非常近

有谁知道真正的正确方法呀?

离线shiziyang

只看该作者 4楼 发表于: 2011-06-24
楼主是不是对该控件用过qss了,用过的话字体参数就无效了。
离线liuxu_lx7
只看该作者 5楼 发表于: 2011-06-24
回 4楼(shiziyang) 的帖子
我用了这些:
setAlignment(Qt::AlignCenter);
setStyleSheet("background-color: rgba(128,128,128,255);");
setAttribute(Qt::WA_TranslucentBackground, true);
离线shiziyang

只看该作者 6楼 发表于: 2011-06-29
所以啊,你用了stylesheet了就别想用QFontMetrics(F)了
快速回复
限100 字节
 
上一个 下一个