在setVisible()之前Qt isVisible()?

时间:2013-07-03 17:31:08

标签: c++ qt

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

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

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

2 个答案:

答案 0 :(得分:2)

没关系。您可以查看Qt源代码,亲眼看看。

答案 1 :(得分: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;
        //...
    }
}