gpt4 book ai didi

python - 哪一个是子类 ChildWidget (PySide) 的父类?

转载 作者:太空宇宙 更新时间:2023-11-03 17:29:46 25 4
gpt4 key购买 nike

你能帮我解释一下原因吗print(str(self.parent()))返回 MainWindow 和 self.print_base()返回QWidget? Parent() 方法在哪里定义?在 super(ChildWidget, self).__init__(parent)父级进入 MainWindow 初始化还是 QWidget 初始化?

import sys
from PySide import QtGui, QtCore

class MainWindow(QtGui.QMainWindow):
def __init__(self):
super(MainWindow, self).__init__()

self.do_something() #sanity check
self.cw = ChildWidget(self)
self.setCentralWidget(self.cw)
self.show()

def do_something(self):

print 'doing something!'

class ChildWidget(QtGui.QWidget):
def print_base(self):
for base in self.__class__.__bases__:
print base.__name__

def __init__(self, parent):
super(ChildWidget, self).__init__(parent)

print(str(self.parent()))
self.print_base()

self.button1 = QtGui.QPushButton()
self.button1.clicked.connect(self.do_something_else)

self.button2 = QtGui.QPushButton()
self.button2.clicked.connect(self.parent().do_something)

self.layout = QtGui.QVBoxLayout()
self.layout.addWidget(self.button1)
self.layout.addWidget(self.button2)
self.setLayout(self.layout)
self.show()

def do_something_else(self):
print 'doing something else!'

最佳答案

您正在处理两种类型的层次结构:1)小部件层次结构; 2)Python类层次结构。方法“print_base”列出了 python POV 中的所有基类,而“parent”则返回子窗口小部件所附加到的窗口小部件实例。

关于python - 哪一个是子类 ChildWidget (PySide) 的父类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32058914/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com