如果我们不知道Qt元素是否可见,是否最好在使用setVisible()
函数之前检查它是否可见?
即使不重要,是否存在性能差异?
if (ui->elem->isVisible() == false)
ui->elem->setVisible(true);
我决定检查4.8.0源代码-这并不难。答案似乎是,首先检查几乎没有什么区别,但分析将是唯一确定的方法。
void QWidget::setVisible(bool visible)
{
if (visible) { // show
if (testAttribute(Qt::WA_WState_ExplicitShowHide) && !testAttribute(Qt::WA_WState_Hidden))
return;
Q_D(QWidget);
//...
} else { // hide
if (testAttribute(Qt::WA_WState_ExplicitShowHide) && testAttribute(Qt::WA_WState_Hidden))
return;
//...
}
}
这没关系。你可以看看Qt的来源,看看自己。