子类弹窗获取父类窗口的属性
时间: 2023-12-02 15:03:23 浏览: 127
JS与jQuery实现子窗口获取父窗口元素值的方法
要获取父类窗口的属性,可以使用以下方法:
1. 在子类弹窗中使用父类窗口的实例化对象来获取属性,例如:
```
class Parent:
def __init__(self):
self.attribute = "父类属性"
self.child_window = Child(self)
class Child:
def __init__(self, parent):
self.parent = parent
def get_attribute(self):
return self.parent.attribute
```
在这个例子中,子类弹窗 Child 的初始化方法接受一个父类实例化对象 parent,将其保存为属性 self.parent,然后可以通过 self.parent.attribute 来获取父类的属性。
2. 在子类弹窗中使用 PyQt5 中的 signal 和 slot 机制来获取属性,例如:
```
from PyQt5.QtCore import pyqtSignal, QObject
class Parent(QObject):
attribute_changed = pyqtSignal(str)
def __init__(self):
self._attribute = "父类属性"
@property
def attribute(self):
return self._attribute
@attribute.setter
def attribute(self, value):
self._attribute = value
self.attribute_changed.emit(value)
class Child(QWidget):
def __init__(self, parent):
super().__init__()
self.parent = parent
self.parent.attribute_changed.connect(self.get_attribute)
def get_attribute(self, value):
print(value)
```
在这个例子中,父类 Parent 定义了一个 signal 属性_changed,该 signal 在属性值发生变化时发出信号,子类弹窗 Child 在初始化时连接该 signal 和自己的 get_attribute 方法,当属性值发生变化时,get_attribute 方法会被调用,并将变化后的属性值作为参数传递进来,从而实现了获取父类属性的目的。
阅读全文