检测主窗口从聚焦到失焦,从失焦到聚焦 qt
时间: 2024-05-12 22:15:34 浏览: 131
可以使用Qt的`QApplication`类提供的`focusChanged()`信号来检测主窗口的聚焦状态。
以下是一个简单的例子:
```python
from PyQt5.QtWidgets import QApplication, QMainWindow
class MyMainWindow(QMainWindow):
def __init__(self):
super().__init__()
self.setWindowTitle("My Main Window")
self.setGeometry(100, 100, 500, 500)
QApplication.instance().focusChanged.connect(self.on_focus_changed)
def on_focus_changed(self, old, new):
if self.isActiveWindow():
print("Main window is focused")
else:
print("Main window is not focused")
if __name__ == '__main__':
app = QApplication([])
window = MyMainWindow()
window.show()
app.exec_()
```
在这个例子中,我们通过重载`on_focus_changed()`方法来处理`focusChanged()`信号。当主窗口处于活动状态时(即聚焦),我们打印“Main window is focused”,否则打印“Main window is not focused”。
你可以在这个例子中添加更多的功能,比如当主窗口失去焦点时停止某些操作,或者当主窗口重新获得焦点时重新开始某些操作。