我想出了这个效果很好
def getWidgetByClassName(name): widgets = QApplication.instance().topLevelWidgets() widgets = widgets + QApplication.instance().allWidgets() for x in widgets: if name in str(x.__class__).replace("<class '","").replace("'>",""): return xdef getWidgetByObjectName(name): widgets = QApplication.instance().topLevelWidgets() widgets = widgets + QApplication.instance().allWidgets() for x in widgets: if str(x.objectName) == name: return xdef getObjects(name, cls=True): import gc objects = [] for obj in gc.get_objects(): if (isinstance(obj, PythonQt.private.QObject) and ((cls and obj.inherits(name)) or (not cls and obj.objectName() == name))): objects.append(obj) return objects


