Cómo llamar al método en el widget principal en el widget secundario en PyQt

En PyQt, para la conveniencia de la gestión jerárquica, la mayoría de las veces hay una distinción entre los widgets secundarios y los widgets principales. Por ejemplo, el widget principal es un QWidget, el widget secundario es un QTabWidget, el widget secundario se encuentra en el elemento principal widget, y el widget secundario es un widget del widget principal.

Obtener partes secundarias de la parte principal es muy simple, no hace falta decirlo. Al crear una parte secundaria en la parte principal, puede utilizar una variable para vincular la parte secundaria.

Sin embargo, parece que no hay una forma clara de obtener la parte principal de la parte secundaria. La solución que se encuentra en Internet es que el resultado final es ambiguo y ambiguo, o simplemente no se aplica al lenguaje Python.

Después de varios experimentos simples, descubrí que la solución es relativamente simple, por lo que aquí hay un registro simple.

Cuando se inicializa la parte principal, self se pasa a la parte secundaria como parte principal al definir la parte secundaria, que es más o menos así:

#self指的是父部件,Interface是子部件的实例化类
#定义一个Interface,即可创建一个子部件并对之进行初始化
self.tab=childWidget.Interface(self)

Luego, en el componente secundario, en el momento de la inicialización, defina una variable principal, reciba el parámetro self pasado del componente principal y asígnelo a la variable principal. El código es aproximadamente el siguiente:

#self指的是新建的子部件
#parent是父部件传过来的参数
def __init__(self,parent):
    super(Interface,self).__init__()
    self.parent=parent

En este caso, en la parte secundaria, siempre que use self.parent, puede obtener la parte principal y luego puede llamar a las propiedades, métodos y otras partes secundarias en la parte principal.

Supongo que te gusta

Origin blog.csdn.net/esa72ya/article/details/89305924
Recomendado
Clasificación