如何将PyQt6中QLineEdit的输入值实时传输并打印到控制台
问题原因与修复方案
核心问题点
- 槽函数绑定错误:你在
connect绑定的时候使用了类名MainWindow.gather_data,而不是当前实例的self.gather_data,导致方法调用时无法获取实例属性,还会引发参数不匹配报错。按钮的clicked信号绑定也存在同样问题。 - 缺少打印逻辑:
gather_data方法仅返回了输入框内容,没有编写打印到控制台的代码,自然不会有输出。 - 存在冗余操作:
textChanged信号会自动将输入框的当前文本作为参数传递给槽函数,不需要额外调用self.ui.input_overall_1.text()重复取值。
修正后的完整代码
import Inter_Input_Blasting as interf from PyQt6 import QtCore, QtWidgets, QtGui from functools import partial class MainWindow(QtWidgets.QMainWindow): def on_clicked(self): print("Button Pushed") def __init__(self, parent=None): super(MainWindow, self).__init__(parent) self.ui = interf.Ui_MainWindow() self.ui.setupUi(self) # 修正绑定方式,用self指代当前实例 self.ui.calc_button.clicked.connect(self.on_clicked) # 修正绑定方式,槽函数直接接收信号传递的文本 self.ui.input_overall_1.textChanged.connect(self.gather_data) def gather_data(self, current_text): # 直接打印传递过来的当前输入文本 print(current_text) if __name__ == "__main__": import sys app = QtWidgets.QApplication(sys.argv) Form = MainWindow() Form.show() sys.exit(app.exec())
内容的提问来源于stack exchange,提问作者Addm1X
相关产品推荐
相关产品推荐

