QLabel 定长后字符串超出部分显示三个点...
我的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); }
声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。
- 上一篇: c 语言fopen打不开中文名的文件
- 下一篇: asp.net 计算两个时间差