在Qt中,setVisible、setShown和show/hide有什么区别?

33
请原谅我提出这个可能是新手问题,当试图隐藏一个QWidget时,调用setVisible(False)、setShown(False)和hide()有什么区别?

4
我认为他们在内部调用了相同的代码。 - Pramod
2个回答

41

show()是一个方便函数,用于将控件设置为可见状态(setVisible(true))。

同样地,hide()相当于setVisible(false)

在内部,使用相同的代码来渲染视图。

参考http://doc.qt.io/archives/qt-4.7/qwidget.html#show,该页面阐述:

void QWidget::show () [slot] 显示控件及其子控件。 此函数等同于setVisible(true)。

在Qt中,有许多这样的函数只是为了使事情更加直观易懂,特别是在涉及控件和视图时。


11
这部分内容只有部分正确。虽然hide()setVisible(false)相同,但是show()不仅设置可见性。根据窗口的默认状态,它将设置窗口状态(导致窗口状态更改通知),然后再调用setVisible(true) - Dan

9

这两者没有区别,只是实现相同目的的不同方式。(实际上,setShown并不是API的一部分,它看起来是Qt 3的兼容性问题,最好不要使用。)


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接