赞
踩
在 PyQt5 中,可以使用 blockSignals
方法来实现某一语句仅触发一次。首先,创建一个布尔变量,该变量用于标识该语句是否已经被触发过。在按键事件的回调函数中,判断该变量是否为真,如果是,则不执行该语句;否则,执行该语句并将该变量设为真。
代码示例如下:
class MainWindow(QMainWindow):
def __init__(self):
super().__init__()
self.button = QPushButton("Click me!", self)
self.button.clicked.connect(self.on_click)
self.executed = False
def on_click(self):
if not self.executed:
# This statement will only be executed once
print("Button clicked!")
self.executed = True
此外,也可以使用信号的 disconnect 方法来实现该语句仅触发一次。首先,在回调函数中执行该语句后立即断开该信号与该回调函数的连接。
代码示例如下:
class MainWindow(QMainWindow):
def __init__(self):
super().__init__()
self.button = QPushButton("Click me!", self)
self.button.clicked.connect(self.on_click)
def on_click(self):
# This statement will only be executed once
print("Button clicked!")
self.button.clicked.disconnect(self.on_click)
这两种方法都可以让某一语句仅触发一次。选择哪种方法取决于你的需求。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。