Qt在setVisible,setShown和show/hide之间的区别是什么

Jar*_*red 21 qt pyqt show hide visible

请原谅这个潜在的noobish问题但是当试图隐藏QWidget时,调用setVisible(False),setShown(False)和hide()之间的区别是什么?

Pra*_*mod 25

show()只是一个方便的功能setVisible(true).

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

在内部,相同的代码用于渲染视图.

http://doc.qt.io/archives/qt-4.7/qwidget.html#show为例.根据它,

void QWidget :: show()[slot]显示窗口小部件及其子窗口小部件.此函数等效于setVisible(true).

你会在Qt中发现很多这样的函数,只是让事情更直观,特别是在小部件和视图方面.

  • 这只是部分正确.虽然`hide()`与`setVisible(false)`相同,但是show()`不仅仅是设置可见性.根据窗口的默认状态,它将设置窗口状态(产生窗口状态更改通知),_then_它调用`setVisible(true)`. (6认同)

Dan*_*urn 6

没有区别.它们只是实现同样目标的不同方式.(实际上setShown并不是API的一部分,看起来它是Qt 3的兼容性产品,所以最好不要使用它.)