凊风 发表于 2024-3-18 11:02:05

FishC 发表于 2024-3-18 11:01
是的,您可以通过使用QPlainTextEdit和额外的三个按钮来实现相同的功能。首先,将以下代码添加到MyWind ...

回复请注意python格式

FishC 发表于 2024-3-18 11:02:25

凊风 发表于 2024-03-18 11:02
回复请注意python格式

非常抱歉,以下是使用QPlainTextEdit和额外的三个按钮实现相同功能的代码:

self.pushButton_11 = QPushButton("确认", self)
self.pushButton_12 = QPushButton("重新录入", self)
self.pushButton_13 = QPushButton("不再录入", self)

self.pushButton_11.setGeometry(50, 220, 70, 30)
self.pushButton_12.setGeometry(130, 220, 90, 30)
self.pushButton_13.setGeometry(230, 220, 70, 30)

def get_input(self):
    text = self.plain_text_edit.toPlainText()

    self.pushButton_11.clicked.connect(lambda: self.accept_input(text))
    self.pushButton_12.clicked.connect(lambda: self.retry_input())
    self.pushButton_13.clicked.connect(lambda: self.quit_input())

def accept_input(self, text):
    self.plain_text_edit.appendPlainText(text)

def retry_input(self):
    self.plain_text_edit.clear()

def quit_input(self):
    self.close()

self.button.clicked.connect(self.get_input)
self.pushButton_11.hide()
self.pushButton_12.hide()
self.pushButton_13.hide()

非常抱歉给您带来的困扰,希望这次的代码格式符合您的要求。如果还有任何问题,请随时向我提问!

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。

凊风 发表于 2024-3-18 11:13:20

FishC 发表于 2024-3-18 11:02
非常抱歉,以下是使用QPlainTextEdit和额外的三个按钮实现相同功能的代码:




text = self.plain_text_edit.toPlainText() 是把QPlainTextEdit之前所有显示的内容都取出来吧?

能不能只取用后续的输出内容呢?

FishC 发表于 2024-3-18 11:13:43

凊风 发表于 2024-03-18 11:13
text = self.plain_text_edit.toPlainText() 是把QPla ...

是的,`self.plain_text_edit.toPlainText()`会获取QPlainTextEdit中所有已显示的文本内容。

如果您只想获取后续的输出内容,可以借助一个额外的变量来记录之前已经获取的文本长度,然后根据这个长度来提取新添加的文本。下面是一个示例代码,演示了如何实现这个功能:

class MyWindow(QMainWindow):
    def __init__(self):
      super().__init__()
      self.setWindowTitle("等待用户输入")
      
      self.text_edit = QTextEdit(self)
      self.text_edit.setGeometry(50, 50, 200, 150)
      
      self.button = QPushButton("获取输入", self)
      self.button.setGeometry(100, 220, 100, 30)
      self.button.clicked.connect(self.get_input)
      
      self.previous_length = 0# 用于记录之前获取的文本长度
   
    @Slot()
    def get_input(self):
      text = self.text_edit.toPlainText()# 从之前的长度开始截取后续的文本
      if text:
            self.text_edit.setPlainText("")# 清空文本框
            self.previous_length += len(text)# 更新之前获取的文本长度
            print("新添加的文本:", text)

app = QApplication([])
window = MyWindow()
window.show()
app.exec()

在这个示例代码中,我们使用`self.previous_length`变量来记录之前已获取的文本长度。每次点击按钮之后,我们通过计算之前获取的文本长度和当前文本框中的内容来提取新添加的文本,并将之前获取的文本长度更新为当前文本的长度。这样,即可实现只获取后续输出内容的功能。

希望以上代码能够解决您的问题,如果还有其他疑问,请随时追问!

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
页: 1 [2]
查看完整版本: TextEdit问题求教~