根据你提供的代码,问题出在没有正确地等待用户从`self.textEdit_4`中录入内容。问题的解决方法是使用信号与槽(Signal and Slot)机制来处理用户输入的等待。
首先,在`WindowB`类的初始化方法中,连接两个按钮的点击事件到相应的槽函数上,如下所示:
class WindowB(BaseWindow):
def __init__(self):
super().__init__()
self.textEdit_4 = QtWidgets.QTextEdit(parent=self)
self.pushButton_11 = QtWidgets.QPushButton("按钮11", parent=self)
self.pushButton_12 = QtWidgets.QPushButton("按钮12", parent=self)
self.pushButton_11.clicked.connect(self.save_input)
self.pushButton_12.clicked.connect(self.reenter_input)
def save_input(self):
exclude_rows_input = self.textEdit_4.toPlainText()
# 储存用户输入的内容
print(f"保存用户输入的内容: {exclude_rows_input}")
def reenter_input(self):
print("请重新录入!")
然后,在窗体(`WindowB`)的构造方法中,添加一个信号(`input_received`),用于通知代码已经接收到用户输入的内容。在`save_input`方法中发射这个信号,即表示接收到用户的输入了。修改后的代码如下:
from PySide6 import QtCore, QtGui, QtWidgets
class BaseWindow(QtWidgets.QWidget):
pass
class WindowB(BaseWindow):
input_received = QtCore.Signal(str) # 创建信号
def __init__(self):
super().__init__()
self.textEdit_4 = QtWidgets.QTextEdit(parent=self)
self.pushButton_11 = QtWidgets.QPushButton("按钮11", parent=self)
self.pushButton_12 = QtWidgets.QPushButton("按钮12", parent=self)
self.pushButton_11.clicked.connect(self.save_input)
self.pushButton_12.clicked.connect(self.reenter_input)
def save_input(self):
exclude_rows_input = self.textEdit_4.toPlainText()
# 储存用户输入的内容
print(f"保存用户输入的内容: {exclude_rows_input}")
self.input_received.emit(exclude_rows_input) # 发射信号
def reenter_input(self):
print("请重新录入!")
这样,当用户点击“按钮11”时,就会触发`save_input`方法,并发射`input_received`信号,表示已经接收到用户的输入内容。你可以在其他代码中连接这个信号,并在槽(Slot)函数中处理用户输入的内容。
希望以上解释和示例代码对你有所帮助!如有其他问题,请随时提问。
以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。 |