mirror of
https://github.com/bec-project/bec_widgets.git
synced 2025-07-14 11:41:49 +02:00
feat(device_combobox): plugin added to bec-designer
This commit is contained in:
@ -16,7 +16,7 @@ from PySide6.scripts.pyside_tool import (
|
|||||||
|
|
||||||
|
|
||||||
def patch_designer(): # pragma: no cover
|
def patch_designer(): # pragma: no cover
|
||||||
init_virtual_env()
|
# init_virtual_env()
|
||||||
|
|
||||||
major_version = sys.version_info[0]
|
major_version = sys.version_info[0]
|
||||||
minor_version = sys.version_info[1]
|
minor_version = sys.version_info[1]
|
||||||
@ -43,8 +43,11 @@ def patch_designer(): # pragma: no cover
|
|||||||
# Patch the designer function
|
# Patch the designer function
|
||||||
def main(): # pragma: no cover
|
def main(): # pragma: no cover
|
||||||
os.environ["PYSIDE_DESIGNER_PLUGINS"] = os.path.join(
|
os.environ["PYSIDE_DESIGNER_PLUGINS"] = os.path.join(
|
||||||
os.path.dirname(bec_widgets.__file__), "examples/plugin_example_pyside"
|
os.path.dirname(bec_widgets.__file__), "widgets/device_inputs/device_combobox"
|
||||||
)
|
)
|
||||||
|
# os.environ["PYSIDE_DESIGNER_PLUGINS"] = os.path.join(
|
||||||
|
# os.path.dirname(bec_widgets.__file__), "widgets/motor_control/selection"
|
||||||
|
# )
|
||||||
patch_designer()
|
patch_designer()
|
||||||
|
|
||||||
|
|
||||||
|
@ -82,14 +82,3 @@ class DeviceComboBox(DeviceInputBase, QComboBox):
|
|||||||
if device_obj is None:
|
if device_obj is None:
|
||||||
raise ValueError(f"Device {device_name} is not found.")
|
raise ValueError(f"Device {device_name} is not found.")
|
||||||
return device_obj
|
return device_obj
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__": # pragma: no cover
|
|
||||||
import sys
|
|
||||||
|
|
||||||
from qtpy.QtWidgets import QApplication
|
|
||||||
|
|
||||||
app = QApplication(sys.argv)
|
|
||||||
w = DeviceComboBox(default_device="samx")
|
|
||||||
w.show()
|
|
||||||
sys.exit(app.exec_())
|
|
||||||
|
@ -0,0 +1,4 @@
|
|||||||
|
{
|
||||||
|
"files": ["device_combobox.py", "launch_device_combobox.py",
|
||||||
|
]
|
||||||
|
}
|
@ -0,0 +1,55 @@
|
|||||||
|
# Copyright (C) 2022 The Qt Company Ltd.
|
||||||
|
# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
|
||||||
|
|
||||||
|
from device_combobox import DeviceComboBox
|
||||||
|
|
||||||
|
from qtpy.QtGui import QIcon
|
||||||
|
from qtpy.QtDesigner import QDesignerCustomWidgetInterface
|
||||||
|
|
||||||
|
|
||||||
|
DOM_XML = """
|
||||||
|
<ui language='c++'>
|
||||||
|
<widget class='DeviceComboBox' name='device_combobox'>
|
||||||
|
</widget>
|
||||||
|
</ui>
|
||||||
|
"""
|
||||||
|
|
||||||
|
|
||||||
|
class DeviceComboBoxPlugin(QDesignerCustomWidgetInterface): # pragma: no cover
|
||||||
|
def __init__(self):
|
||||||
|
super().__init__()
|
||||||
|
self._form_editor = None
|
||||||
|
|
||||||
|
def createWidget(self, parent):
|
||||||
|
t = DeviceComboBox(parent)
|
||||||
|
return t
|
||||||
|
|
||||||
|
def domXml(self):
|
||||||
|
return DOM_XML
|
||||||
|
|
||||||
|
def group(self):
|
||||||
|
return ""
|
||||||
|
|
||||||
|
def icon(self):
|
||||||
|
return QIcon()
|
||||||
|
|
||||||
|
def includeFile(self):
|
||||||
|
return "device_combobox"
|
||||||
|
|
||||||
|
def initialize(self, form_editor):
|
||||||
|
self._form_editor = form_editor
|
||||||
|
|
||||||
|
def isContainer(self):
|
||||||
|
return False
|
||||||
|
|
||||||
|
def isInitialized(self):
|
||||||
|
return self._form_editor is not None
|
||||||
|
|
||||||
|
def name(self):
|
||||||
|
return "DeviceComboBox"
|
||||||
|
|
||||||
|
def toolTip(self):
|
||||||
|
return "Device ComboBox Example for BEC Widgets"
|
||||||
|
|
||||||
|
def whatsThis(self):
|
||||||
|
return self.toolTip()
|
@ -0,0 +1,11 @@
|
|||||||
|
from bec_widgets.widgets.device_inputs import DeviceComboBox
|
||||||
|
|
||||||
|
if __name__ == "__main__": # pragma: no cover
|
||||||
|
import sys
|
||||||
|
|
||||||
|
from qtpy.QtWidgets import QApplication
|
||||||
|
|
||||||
|
app = QApplication(sys.argv)
|
||||||
|
w = DeviceComboBox()
|
||||||
|
w.show()
|
||||||
|
sys.exit(app.exec_())
|
@ -0,0 +1,16 @@
|
|||||||
|
# Copyright (C) 2022 The Qt Company Ltd.
|
||||||
|
# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
|
||||||
|
|
||||||
|
from device_combobox import DeviceComboBox
|
||||||
|
|
||||||
|
from PySide6.QtDesigner import QPyDesignerCustomWidgetCollection
|
||||||
|
|
||||||
|
from bec_widgets.widgets.device_inputs.device_combobox.device_combobox_plugin import (
|
||||||
|
DeviceComboBoxPlugin,
|
||||||
|
)
|
||||||
|
|
||||||
|
# Set PYSIDE_DESIGNER_PLUGINS to point to this directory and load the plugin
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == "__main__": # pragma: no cover
|
||||||
|
QPyDesignerCustomWidgetCollection.addCustomWidget(DeviceComboBoxPlugin())
|
Reference in New Issue
Block a user