查看文档,您可以看到,QSignalBlocker 提供了__enter__和__exit__函数。给__enter__定对象的信号被阻止,并且__exit__阻止状态设置为之前的状态。当您查看QSignalBlocker的原始 Qt 文档并将该__enter__函数视为 C++ 构造函数并将该函数__exit__视为 C++ 析构函数时,您可以看到这一点。
要利用这些函数,您可以使用with- 语句并通过此调用有效地阻止信号:
with QSignalBlocker(self.double_spin_box) as blocker:
self.double_spin_box.setValue(2.5)
Run Code Online (Sandbox Code Playgroud)
这个 with 语句将把这个调用翻译成
blocker = QSignalBlocker(self.double_spin_box)
blocker.__enter__()
try:
self.double_spin_box.setValue(2.5)
finally:
blocker.__exit__()
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2560 次 |
| 最近记录: |