axioma.gui.
WidgetManagerService
¶Примечание
Абстрактный
Менеджер виджетов
Унаследован от:
Методы:
count
(type)Количество виджетов заданного типа
Параметры: type ( QMetaObject
) – типРезультат: количество Тип результата: int
allWidgets
(type)Список виджетов заданного типа
Параметры: type ( QMetaObject
) – типРезультат: список виджетов Тип результата: list
[QWidget
]
connectWidgetCountChanged
(type, context, callback)¶Подписаться на изменение количества виджетов определенного типа
Параметры: from axioma.gui import MapView, ItemView widgetManager = axioma.app.gui.widgetManager # без параметров callbackMap = lambda: print("Number of MapViews has changed") widgetManager.connectWidgetCountChanged(MapView, None, callbackMap) # с параметром callbackItem = lambda itemview_count: print("ItemViews: ", itemview_count) widgetManager.connectWidgetCountChanged(ItemView, None, callbackItem)
connectWidgetChanged
(type, context, callback)¶Подписаться на изменение текущего виджета определенного типа
Параметры: from PyQt5.QtWidgets import QWidget widgetManager = axioma.app.gui.widgetManager callbackChanged = lambda: print("Current widget changed") widgetManager.connectWidgetChanged(QWidget, None, callbackChanged)
connectCurrentWidget
(type, signal, context, callback)¶Подписаться на сигнал активного виджета. При его смене произойдет переподключение нового активного виджета
Параметры:
- type (
type
) – тип виджета, за сигналом которого нужно следить- signal (
PyQt5.QtCore.pyqtSignal
) – сигнал- context (
QObject
) – отвечает за время жизни соединения- callback (
typing.Callable
) – вызываемый метод при смене виджета заданного типа; должен быть совместим с сигналомfrom axioma.gui import MapView from PyQt5.QtWidgets import QPushButton widgetManager = axioma.app.gui.widgetManager callbackZoomChanged = lambda zoom: print("Zoom is changed: ", zoom) # guard контроллирует время жизни соединения guard = QPushButton("Disconnect") guard.setAttribute(Qt.WA_DeleteOnClose) guard.clicked.connect(guard.close) guard.show() widgetManager.connectCurrentWidget(MapView, MapView.zoomChanged, guard, callbackZoomChanged)