Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 10 additions & 4 deletions 01-HelloWorld-基本结构/03-类的继承关系.py
Original file line number Diff line number Diff line change
@@ -1,13 +1,19 @@
from PySide6 import QtWidgets

# PySide6 现在懒加载,**类不被访问,就不会出现在`__subclasses__()`**。
# `__subclasses__()` 做 Qt 继承树遍历这个写法,现在已经不太靠谱,属于旧教程遗留
# 强制引用几个子类,触发加载到内存
_ = QtWidgets.QPushButton
_ = QtWidgets.QRadioButton
_ = QtWidgets.QCheckBox
_ = QtWidgets.QToolButton


def get_sub_classes(class_):
"""递归地显示某一类的所有子类"""
for subclass in class_.__subclasses__():
print(subclass)
if len(subclass.__subclasses__()) > 0:
get_sub_classes(subclass)
get_sub_classes(subclass)


# 查看QAbstractButton抽象基类的所有子类,了解Qt6提供了哪些按钮控件
app = QtWidgets.QApplication([])
get_sub_classes(QtWidgets.QAbstractButton)