Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  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

Info

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 

Content by Label
showLabelsfalse
max5
spacesSRF
showSpacefalse
sortmodified
reversetrue
typepage
cqllabel = "pydm" and type = "page" and space = "SRF"
labelskb-how-to-article

...