python+pyqt5 当文本框按回车键时或焦点离开时执行指定函数
时间: 2024-09-15 07:11:07 浏览: 10
在Python + PyQt5中,你可以通过监听`QLineEdit`(文本输入框)的`returnPressed`事件或`focusOutEvent`事件来实现在文本框按下回车键或失去焦点时执行特定函数。下面是一个简单的例子:
```python
import sys
from PyQt5.QtWidgets import QApplication, QLineEdit, QMainWindow
from PyQt5.QtCore import pyqtSignal, Qt
class CustomLineEdit(QLineEdit):
# 创建一个信号,当文本框的内容变化时触发
contentChanged = pyqtSignal(str)
def __init__(self, parent=None):
super().__init__(parent)
self.returnPressed.connect(self.execute_function)
self.textChanged.connect(self.contentChanged.emit)
def execute_function(self):
# 这里是你想在回车或焦点离开时执行的函数
input_text = self.text() # 获取当前输入的文本
print(f"On return or focus out, function executed with input: {input_text}")
# 使用自定义的文本输入框
class MainWindow(QMainWindow):
def __init__(self):
super().__init__()
line_edit = CustomLineEdit()
line_edit.move(100, 100) # 设置输入框的位置
self.setCentralWidget(line_edit)
if __name__ == "__main__":
app = QApplication(sys.argv)
main_window = MainWindow()
main_window.show()
sys.exit(app.exec_())
```
在这个例子中,当我们向文本框中输入内容并按下回车键,或者从文本框中移除焦点时,`execute_function`函数会被调用,并打印出输入的文本。