You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 6 Next »

Prerequisites

  1. Complete a Local PyDM/Simulacrum Setup
  2. Run through the GitHub quick start tutorial
  3. Run through the GitHub tutorial on contributing to projects
    1. Note that I recommend using the ssh approach as it leverages what we did in step 1
  4. Join the slaclab tutorial team
  5. Download and install PyCharm
  6. Fork the tutorial repository and clone it to your machine (see step 3)


Unless otherwise specified, everything hereafter will be done in the PyDM conda environment set up in prerequisites step 1

Simple GUI

Explore

  1. Navigate to the simple subdirectory and run pydm simple.py. This will launch a simple GUI:
  2. Play with it. Note that the "selected options" output doesn't change until you click the "update status" button. It's meant to reflect the state of the checkboxes at the point the button is pressed
  3. Launch designer and open simple.ui
    1. Note the Object Names in the Object Inspector:
      1. The checkboxes, push button, and output label all have custom names that reflect what they are (the standard names are typically not helpful and make connecting to them in python much harder)
    2. Note the different layouts; they allow for window resizing and snapping to grid
      1. Window resizing happens by right clicking the background of your widget and clicking Lay out to select the kind you want
    3. Note that we changed the window title in the Property Editor
  4. Open the tutorial repo with PyCharm and navigate to simple.py. Read through it and try to understand how the connections are happening (clicking through the provided links as necessary)

Exercises

  • Play with layouts in designer. Try right clicking the background of the widget and selecting Lay out > Break Layout. The GUI will no longer resize or snap to grid. Try to get it back to where it was. 
  • Rename a widget in designer without changing the python file. Does it launch? Try to edit the python file to make it work again
  • Disable or delete the button and see if you can have the status label update whenever either of the checkboxes is toggled

PV Readout

This section will need the simulacrum sc_rf_service running. Please refer to prerequisites step 1

Here you've been provide the skeleton of a non-resizing GUI whose purpose is to take a PV string and connect a readout to it. If you run pydm pv_readout.py as is, it will launch an example GUI that has a spin box for CM01 cavity 1's ADES.

  1. Navigate to the pv_readout directory and open pv_readout.ui in designer and pv_readout.py in PyCharm
  2. Make the widget resizable and make it so that the elements are aligned nicely horizontally
  3. Rename the widgets to have helpful names
  4. Edit the python file so that it uses pv_readout.ui
  5. Connect the returnPressed signal from the line edit to a custom slot that updates the pydm label's channel to the line edit's text 



  • No labels