ptqt5 在新窗口改变旧窗口的textEdit值
时间: 2024-02-11 07:06:21 浏览: 57
pyqt5 textEdit、lineEdit操作的示例代码
如果您想在一个新的窗口中修改另一个窗口中的 QTextEdit 值,您可以通过以下步骤实现:
1. 在新窗口中定义一个信号,以便在需要修改旧窗口中的 QTextEdit 值时发射该信号。
```python
from PyQt5.QtCore import pyqtSignal, QObject
class Window2(QObject):
value_changed = pyqtSignal(str)
```
2. 在旧窗口中定义一个槽函数,以便在接收到新窗口发射的信号时更新 QTextEdit 值。
```python
from PyQt5.QtWidgets import QMainWindow, QTextEdit
class Window1(QMainWindow):
def __init__(self):
super().__init__()
self.text_edit = QTextEdit(self)
self.setCentralWidget(self.text_edit)
self.window2 = Window2()
self.window2.value_changed.connect(self.update_text_edit)
def update_text_edit(self, value):
self.text_edit.setText(value)
```
3. 在新窗口中发射信号,并传递需要设置的值。
```python
class Window2(QWidget):
def __init__(self, window1):
super().__init__()
self.window1 = window1
self.text_edit = QTextEdit(self)
self.button = QPushButton('Set Value', self)
self.button.clicked.connect(self.set_value)
layout = QVBoxLayout(self)
layout.addWidget(self.text_edit)
layout.addWidget(self.button)
def set_value(self):
value = self.text_edit.toPlainText()
self.window1.window2.value_changed.emit(value)
```
在上述代码中,我们将旧窗口对象传递给了新窗口,以便在新窗口中访问旧窗口中定义的信号。当新窗口中的按钮被点击时,我们获取 QTextEdit 的当前值,并通过发射信号将其传递给旧窗口中定义的槽函数。旧窗口中的槽函数接收到值后,更新 QTextEdit 的值。
希望这可以帮助您解决问题。
阅读全文