可以通过信号与槽机制来实现。
首先,需要在第一个窗口中定义一个信号,用于在变量更改时发出信号。可以使用pyqtSignal
来创建一个自定义信号。
from PyQt5.QtCore import pyqtSignal, QObject
class Variable(QObject):
valueChanged = pyqtSignal(str)
def __init__(self):
super().__init__()
self._value = ""
@property
def value(self):
return self._value
@value.setter
def value(self, new_value):
self._value = new_value
self.valueChanged.emit(new_value)
在第二个窗口中,可以连接第一个窗口的信号到一个槽函数,用于更新标签的内容。
from PyQt5.QtWidgets import QLabel, QVBoxLayout, QWidget
from PyQt5.QtCore import Qt
class SecondWindow(QWidget):
def __init__(self, variable):
super().__init__()
self.variable = variable
self.variable.valueChanged.connect(self.update_label)
self.label = QLabel()
layout = QVBoxLayout()
layout.addWidget(self.label)
self.setLayout(layout)
def update_label(self, new_value):
self.label.setText(new_value)
这样,当第一个窗口中的变量值发生变化时,会触发信号valueChanged
,然后连接的槽函数update_label
会被调用,更新第二个窗口中的标签内容。
关于PYQT5的更多信息和使用方法,可以参考腾讯云的产品介绍链接:PYQT5产品介绍
领取专属 10元无门槛券
手把手带您无忧上云