|
发表于 2024-3-17 17:10:13
|
显示全部楼层
根据你提供的代码,问题出在没有正确地等待用户从`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 小助理,如未能正确解答您的问题,请继续追问。 |
|