PyQt5 library to create control panels for escape room props.
The PyPropControl core library is shared by two projects:
QtProp in PyProps library is also written with PyQt5 therefore we, and you, can leverage in coding prop control panels and xcape.io Room.
PyQt5 has its own event loop to multitask seamlessly and it brings the power of Qt to Python.
Pycharm Community is the free python IDE recommenbded for developing your own plugin or control panel.
The PyControlPanel code and the PyRoomPlugin code are almost interchangeable.
Prop control panel is a powerful feature of xcape.ioRoom software and for people who don't want to use xcape.io Room, PyControlPanel is the alternative to create your own prop control panel.
The control panel code is mainly in PanelDialog.py
where you start editing for your own project.
To create your own control panel, you simply download the PyPropControlPanelInstallation.zip
archive, unflate and hack the code.
Because PyControlPanel is a pure python applet, you can install it on any computer running python with PyQt5 (Windows, Mac, Linux and even Raspberry Pi).
See Installation in PyPropControlPanel README.
You can quickly write a control panel with the widgets from the core library:
And because you code the control panel yourself, you can create widgets of any kind to make a complex control panel.
See PyRoomPlugin project.
The xcape.ioRoom plugin system allows you to extend the software to meet all the needs of escape rooms.
Plugin are usually created to perform specific control, synch as:
- send clues and hint to players (PyTeletextPlugin)
- adjust the timing of a linear actuator
- control a game with several boards (biometric fingerprint in an out)
The plugin code is mainly in PluginDialog.py
where you start editing for your own project.
You will use the widgets of the PyPropControl core library and you will create your own widgets easily thanks to the QtWidgets library and the PyQt5 tutorials.
See PyPropControl core.
AppletDialog
: base class that manages the size and position of the main dialogMqttApplet
: base class for you applet which manage all the MQTT messagingSingleton
: to guarantee the execution of a single instance of your appletLedWidget
: to show teh conenction state with the propDataWidget
: display a prop data with text or imagePushButton
: button to send a message to the propSwitchWidget
: switch synchronized with a prop boolean dataToggleButton
: toggle button synchronized with a prop boolean data
Faure Systems (Apr 18th, 2020)