gpt4 book ai didi

qt - 如何获取给定小部件的所有信号集?

转载 作者:行者123 更新时间:2023-12-04 22:20:11 24 4
gpt4 key购买 nike

我正在浏览 Qt 文档。是否有一种快速而肮脏的方法来获取小部件可以发出的所有信号的列表。

例如(withPyQt):

allSignalsList = thisWidget.getSignals()

或者,在新的 Qt5 API 上是否有一个不错的地方可以显示给定 QObject 的所有信号?

最佳答案

没有用于列出信号的内置方法,但普通的 python 对象内省(introspection)将相当容易地获取信息:

from PyQt5 import QtCore, QtWidgets

def get_signals(source):
cls = source if isinstance(source, type) else type(source)
signal = type(QtCore.pyqtSignal())
for subcls in cls.mro():
clsname = f'{subcls.__module__}.{subcls.__name__}'
for key, value in sorted(vars(subcls).items()):
if isinstance(value, signal):
print(f'{key} [{clsname}]')

get_signals(QtWidgets.QPushButton)
输出:
clicked [PyQt5.QtWidgets.QAbstractButton]
pressed [PyQt5.QtWidgets.QAbstractButton]
released [PyQt5.QtWidgets.QAbstractButton]
toggled [PyQt5.QtWidgets.QAbstractButton]
customContextMenuRequested [PyQt5.QtWidgets.QWidget]
windowIconChanged [PyQt5.QtWidgets.QWidget]
windowIconTextChanged [PyQt5.QtWidgets.QWidget]
windowTitleChanged [PyQt5.QtWidgets.QWidget]
destroyed [PyQt5.QtCore.QObject]
objectNameChanged [PyQt5.QtCore.QObject]
但是,学习使用 Qt Documentation 可能会更好。 .如果您访问 Qt 类的页面,则会出现 目录 右上角的侧边栏包含主要成员类型的链接。这通常包括信号部分,但如果没有,您可以向下钻取继承的类,直到找到一个。
例如, QPushButton页面没有显示信号部分,但它继承了 QAbstractButton , have one .

关于qt - 如何获取给定小部件的所有信号集?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28258875/

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