0

如果我们不知道 Qt 元素是否可见,是否最好在使用setVisible()函数之前检查它是否可见?

即使不重要,是否有任何性能差异?

if (ui->elem->isVisible() == false)
    ui->elem->setVisible(true);
4

2 回答 2

2

没关系。您可以查看 Qt 源代码以自己查看。

于 2013-07-03T17:36:29.203 回答
2

我决定检查 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;
        //...
    }
}
于 2013-07-03T18:40:02.540 回答