Resources¶
Example Xi-CAM Plugins¶
Xi-CAM CatalogViewer Plugin - Example of a simple single-stage GUIPlugin.
Xi-CAM Log Plugin - Example of another simple single-stage GUIPlugin.
Xi-CAM BSISB Plugin - Example of a multi-stage GUIPlugin with more functionality.
Xi-CAM NCEM Plugin - Another example of a multi-stage GUIPlugin with more functionality.
Git¶
Try GitHub - Landing page for some introductions and resources about git and GitHub.
Git Handbook - An introduction to git and GitHub.
NSLS-II¶
Useful resources about NSLS-II software that Xi-CAM uses.
Databroker Catalog - Describes how to configure and use a databroker catalog.
Event Model - Describes an event-based data model.
Bluesky Documents - Describes what a bluesky document is.
Python¶
Here are a few resources regarding object-oriented programming with Python3. Feel free to look through these or even through resources you find on your own if you are interested.
Qt¶
Qt is a framework written in C++ for developing graphical user interfaces. PySide2 and PyQt5 are two different python bindings to the Qt C++ API. QtPy is a wrapper that allows for writing python Qt code with either PyQt5 or PySide2 installed.
Xi-CAM uses QtPy to interact with different Python bindings to Qt.
QtPy allows you “to write your code as if you were using PySide2 but import Qt modules from qtpy instead of PySide2
(or PyQt5)”.
The references below show PySide2 examples and documentation; when writing a Xi-CAM
plugin, make sure to use the qtpy
modules when importing.
PySide2 Documentation - Documentation for PySide2. Since the QtPy API resembles PySide2, this documentation is helpful for looking up python Qt modules and classes that you may use.
PyQt5 GUI Tutorial - Introductory tutorial for learning the basic concepts of Qt. Note: this tutorial is written for PyQt5, remember to import from
qtpy
instead ofPyQt5
orPySide2
when writing code for Xi-CAM.PySide2 Simple Clickable Button - Short tutorial that describes the concept of signals and slots in Qt and shows how to create a button that responds to clicking.
PyQtGraph - Documentation for the pyqtgraph package, which relies on Qt and provides basic data visualization (plotting) and various widgets (helpful for writing Xi-CAM GUIPlugins).