pyqt5 visibleChanged
时间: 2023-08-16 21:07:50 浏览: 107
在 PyQt5 中,visibleChanged 是一个信号(signal),用于检测控件的可见性是否发生变化。当控件的可见性发生变化时,该信号会被触发并发送出去。
以下是一个示例代码,演示如何使用 visibleChanged 信号:
```python
from PyQt5.QtWidgets import QApplication, QWidget
from PyQt5.QtCore import Qt
class MyWidget(QWidget):
def __init__(self):
super().__init__()
self.setWindowTitle("Visible Changed Example")
self.setGeometry(100, 100, 300, 200)
self.visibleChanged.connect(self.handleVisibleChanged)
def showEvent(self, event):
# 控件显示时触发
self.visibleChanged.emit()
def hideEvent(self, event):
# 控件隐藏时触发
self.visibleChanged.emit()
def handleVisibleChanged(self):
# 可见性发生变化时执行的操作
if self.isVisible():
print("Widget is now visible")
else:
print("Widget is now hidden")
if __name__ == '__main__':
app = QApplication([])
widget = MyWidget()
widget.show()
app.exec_()
```
在上述代码中,我们创建了一个继承自 QWidget 的自定义控件 MyWidget。在该控件中,我们重写了 showEvent() 和 hideEvent() 方法,并在这两个方法中手动触发了 visibleChanged 信号。
在 handleVisibleChanged() 方法中,我们根据控件的可见性状态执行相应的操作,这里只是简单地打印一条消息。
当我们运行这段代码时,每次控件的可见性发生变化时,handleVisibleChanged() 方法会被调用,并打印相应的消息。
阅读全文