我们经常自定义一些控件 比如按钮随文字改变长度,label自动适应长度. 可以通过计算该文字所占用像素来获取一个Rect.
比如在一个窗口里 布局了按钮 可以这样处理:
void Cod_LoginWget::resizeEvent(QResizeEvent*)
{
static bool initSize = true;
if (initSize) //界面首次进入resizeEvent
{
QFontMetrics fmwelcome(m_pFeedbackBtn->font());
int wid = fmwelcome.boundingRect(m_pFeedbackBtn->text()).width();
m_pFeedbackBtn->setFixedWidth(wid);
QFontMetrics fmnotice(m_pContinueEngBtn->font());
wid = fmnotice.boundingRect(m_pContinueEngBtn->text()).width();
m_pContinueEngBtn->setFixedWidth(wid);
initSize = false;
}
}
初始化控件长度,如果文字变化的时候再调用if里的这段代码端 按钮自动适应.