声明:
QHBoxLayout *hboxProgress;
QLabel *white_label;
QProgressBar *remember_label;
构造函数里初始化:
hboxProgress = new QHBoxLayout();
hboxProgress->addWidget(white_label);
hboxProgress->addStretch(1);
hboxProgress->setSpacing(40);
hboxProgress->setContentsMargins(0, 0, 0, 0);
white_label = new QLabel();
white_label->setFixedSize(160, 10);
remember_label = new QProgressBar();
remember_label->setFixedSize(160, 10);
remember_label->setRange(0,100);
remember_label->setValue(0);
m_state=false;
登录按钮对应的函数:
void LoginDialog::verify()
{
if(!m_state)
{
title_label->setText(tr("test 111")); // 始终有效
hboxProgress->removeWidget(white_label);
hboxProgress->addWidget(remember_label); // 第一次切换有效,之后无效
hboxProgress->invalidate(); // 加上仍无效
hboxProgress->update(); // 加上仍无效
m_state=true;
}
else
{
title_label->setText(tr("test 222")); // 始终有效
hboxProgress->removeWidget(remember_label);
hboxProgress->addWidget(white_label); // 问题在这里:从未生效(至少从未被显示)
hboxProgress->invalidate(); // 加上仍无效
hboxProgress->update(); // 加上仍无效
m_state=false;
}
}
其实我就是要做一个登录框,但是在验证用户数据的时候,显示一个进度条,否则就显示一个Label。但是QHBoxLayout里动态设置Widget的时候不成功,请各位大大指教,非常感谢!