入门客AI创业平台(我带你入门,你带我飞行)
博文笔记

QLabel 定长后字符串超出部分显示三个点...

创建时间:2011-12-05 投稿人: 浏览次数:1935

我的QLabel都是定长的,但字符串却是不定长的。势必在一些情形下,字符串显示不全。

我想在显示不全时,人为在尾端加上“...”三个点,以示用户。

QString QFontMetrics::elidedText ( const QString & text, Qt::TextElideMode mode, int width, int flags = 0 ) const

现在OK了。有一点,多行的文本打...,elidedText的第3个width参数需乘个行数。。


#define SIZE_W     100
#define SIZE_H     30

MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
{
    this->resize(SIZE_W*2, SIZE_H*6);
    m_pButton = new QPushButton(this);
    m_pButton->setText("btn");
    m_pButton->setFixedSize(SIZE_W, SIZE_H);
    m_pButton->move(0, SIZE_H*0);

    QString text1("This is a simple QLabel object text!");
    QFont ft;
    QFontMetrics fm(ft);
    QString text2 = fm.elidedText(text1, Qt::ElideRight, SIZE_W);
    QString text3 = fm.elidedText(text1, Qt::ElideRight, SIZE_W*2);

    m_pLabel1 = new QLabel(this);
    m_pLabel1->setFixedSize(SIZE_W, SIZE_H);
    m_pLabel1->move(0, SIZE_H*1);
    m_pLabel1->setText(text1);

    m_pLabel2 = new QLabel(this);
    m_pLabel2->setFixedSize(SIZE_W, SIZE_H);
    m_pLabel2->move(0, SIZE_H*2);
    m_pLabel2->setText(text2);

    m_pLabel3 = new QLabel(this);
    m_pLabel3->setFixedSize(SIZE_W, SIZE_H);
    m_pLabel3->setWordWrap(true);
    m_pLabel3->setAlignment(Qt::AlignTop);
    m_pLabel3->move(0, SIZE_H*3);
    m_pLabel3->setText(text3);
}


声明:该文观点仅代表作者本人,入门客AI创业平台信息发布平台仅提供信息存储空间服务,如有疑问请联系rumenke@qq.com。
  • 上一篇:没有了
  • 下一篇:没有了
未上传头像