如果我们不知道 Qt 元素是否可见,是否最好在使用setVisible()
函数之前检查它是否可见?
即使不重要,是否有任何性能差异?
if (ui->elem->isVisible() == false)
ui->elem->setVisible(true);
没关系。您可以查看 Qt 源代码以自己查看。
我决定检查 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;
//...
}
}