mirror of
https://github.com/bec-project/bec_widgets.git
synced 2025-07-14 03:31:50 +02:00
feat(widget): make Minesweeper into BEC widget
This commit is contained in:
@ -31,6 +31,7 @@ class Widgets(str, enum.Enum):
|
|||||||
DeviceComboBox = "DeviceComboBox"
|
DeviceComboBox = "DeviceComboBox"
|
||||||
DeviceLineEdit = "DeviceLineEdit"
|
DeviceLineEdit = "DeviceLineEdit"
|
||||||
LMFitDialog = "LMFitDialog"
|
LMFitDialog = "LMFitDialog"
|
||||||
|
Minesweeper = "Minesweeper"
|
||||||
PositionIndicator = "PositionIndicator"
|
PositionIndicator = "PositionIndicator"
|
||||||
PositionerBox = "PositionerBox"
|
PositionerBox = "PositionerBox"
|
||||||
PositionerControlLine = "PositionerControlLine"
|
PositionerControlLine = "PositionerControlLine"
|
||||||
@ -3181,6 +3182,9 @@ class LMFitDialog(RPCBase):
|
|||||||
"""
|
"""
|
||||||
|
|
||||||
|
|
||||||
|
class Minesweeper(RPCBase): ...
|
||||||
|
|
||||||
|
|
||||||
class PositionIndicator(RPCBase):
|
class PositionIndicator(RPCBase):
|
||||||
@rpc_call
|
@rpc_call
|
||||||
def set_value(self, position: float):
|
def set_value(self, position: float):
|
||||||
|
@ -16,6 +16,8 @@ from qtpy.QtWidgets import (
|
|||||||
QWidget,
|
QWidget,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
from bec_widgets.utils.bec_widget import BECWidget
|
||||||
|
|
||||||
NUM_COLORS = {
|
NUM_COLORS = {
|
||||||
1: QColor("#f44336"),
|
1: QColor("#f44336"),
|
||||||
2: QColor("#9C27B0"),
|
2: QColor("#9C27B0"),
|
||||||
@ -137,13 +139,16 @@ class Pos(QWidget):
|
|||||||
self.ohno.emit()
|
self.ohno.emit()
|
||||||
|
|
||||||
|
|
||||||
class Minesweeper(QWidget):
|
class Minesweeper(BECWidget, QWidget):
|
||||||
|
|
||||||
PLUGIN = True
|
PLUGIN = True
|
||||||
ICON_NAME = "videogame_asset"
|
ICON_NAME = "videogame_asset"
|
||||||
|
USER_ACCESS = []
|
||||||
|
|
||||||
def __init__(self, *args, **kwargs):
|
def __init__(self, parent=None, *args, **kwargs):
|
||||||
super().__init__(*args, **kwargs)
|
super().__init__(*args, **kwargs)
|
||||||
|
QWidget.__init__(self, parent=parent)
|
||||||
|
|
||||||
self._ui_initialised = False
|
self._ui_initialised = False
|
||||||
self._timer_start_num_seconds = 0
|
self._timer_start_num_seconds = 0
|
||||||
self._set_level_params(LEVELS["1"])
|
self._set_level_params(LEVELS["1"])
|
||||||
|
1
bec_widgets/widgets/games/minesweeper.pyproject
Normal file
1
bec_widgets/widgets/games/minesweeper.pyproject
Normal file
@ -0,0 +1 @@
|
|||||||
|
{'files': ['minesweeper.py']}
|
54
bec_widgets/widgets/games/minesweeper_plugin.py
Normal file
54
bec_widgets/widgets/games/minesweeper_plugin.py
Normal file
@ -0,0 +1,54 @@
|
|||||||
|
# Copyright (C) 2022 The Qt Company Ltd.
|
||||||
|
# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
|
||||||
|
|
||||||
|
from qtpy.QtDesigner import QDesignerCustomWidgetInterface
|
||||||
|
|
||||||
|
from bec_widgets.utils.bec_designer import designer_material_icon
|
||||||
|
from bec_widgets.widgets.games.minesweeper import Minesweeper
|
||||||
|
|
||||||
|
DOM_XML = """
|
||||||
|
<ui language='c++'>
|
||||||
|
<widget class='Minesweeper' name='minesweeper'>
|
||||||
|
</widget>
|
||||||
|
</ui>
|
||||||
|
"""
|
||||||
|
|
||||||
|
|
||||||
|
class MinesweeperPlugin(QDesignerCustomWidgetInterface): # pragma: no cover
|
||||||
|
def __init__(self):
|
||||||
|
super().__init__()
|
||||||
|
self._form_editor = None
|
||||||
|
|
||||||
|
def createWidget(self, parent):
|
||||||
|
t = Minesweeper(parent)
|
||||||
|
return t
|
||||||
|
|
||||||
|
def domXml(self):
|
||||||
|
return DOM_XML
|
||||||
|
|
||||||
|
def group(self):
|
||||||
|
return "BEC Games"
|
||||||
|
|
||||||
|
def icon(self):
|
||||||
|
return designer_material_icon(Minesweeper.ICON_NAME)
|
||||||
|
|
||||||
|
def includeFile(self):
|
||||||
|
return "minesweeper"
|
||||||
|
|
||||||
|
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 "Minesweeper"
|
||||||
|
|
||||||
|
def toolTip(self):
|
||||||
|
return "Minesweeper"
|
||||||
|
|
||||||
|
def whatsThis(self):
|
||||||
|
return self.toolTip()
|
15
bec_widgets/widgets/games/register_minesweeper.py
Normal file
15
bec_widgets/widgets/games/register_minesweeper.py
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
def main(): # pragma: no cover
|
||||||
|
from qtpy import PYSIDE6
|
||||||
|
|
||||||
|
if not PYSIDE6:
|
||||||
|
print("PYSIDE6 is not available in the environment. Cannot patch designer.")
|
||||||
|
return
|
||||||
|
from PySide6.QtDesigner import QPyDesignerCustomWidgetCollection
|
||||||
|
|
||||||
|
from bec_widgets.widgets.games.minesweeper_plugin import MinesweeperPlugin
|
||||||
|
|
||||||
|
QPyDesignerCustomWidgetCollection.addCustomWidget(MinesweeperPlugin())
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == "__main__": # pragma: no cover
|
||||||
|
main()
|
Reference in New Issue
Block a user