第一种方式:
按钮:
int textWidth = button->fontMetrics().width(m_text); //m_text 是一个全局变量,保存按钮文字的完整版本,text()函数取出来
//的是设置的加有"..."的
int buttonWidth = contantsRect().width();
QString tmpStr = m_text;
if(buttonWidth < textWidth)
{
tmpStr = m_text.left(m_text.lenght() * buttonWidth / textWidth - x) + "..."; // 此处x是一个调整值,有时按钮会设置
//边框和padding,
}
此处tmpStr 就是可以显示在按钮上的文字
第二种方式:
QString tmpStr = button->fontMetrics().elidedText(m_text, Qt::elideRight, contentsRect().width(), Qt::TextShowMnemonic);