PGU Interface

From TRCCompSci - AQA Computer Science
Revision as of 12:29, 2 July 2018 by Admin (talk | contribs) (Other components)
Jump to: navigation, search

Installing PGU

Once you have downloaded the .zip file from here (select the latest version). You can then install the downloaded file, remember to check the actual path to the file. You can type the following into the search box in the python environments panel:

pip install "path/to/file/pgu-0.18.zip

if this doesn't work then you can also try:

  1. When you download PGU from the link above
  2. Unzip it to a folder, remember to maintain the directory structure
  3. inside the folder there are other two folders named "pgu" and "data".
  4. Copy them into your project's/program's root folder and you're done!

PGU Example

You firstly need to create a Desktop (or App()), we then need to connect the QUIT methods.

from pgu import gui

#create gui called app
app = gui.Desktop()

#connect quit logic to gui quit
app.connect(gui.QUIT,app.quit,None)

#container for the gui components
container = gui.Container(width=200,height=120)

#Quit button with quit logic and added onto the container
quitBtn = gui.Button("Quit")
quitBtn.connect(gui.CLICK,app.quit,None)
container.add(quitBtn,25,25)

#Method to run if click button is clicked
def Clicked():
    print("Clicked")

#Click button with logic to run the Clicked method above
clickBtn = gui.Button("Click Me!")
clickBtn.connect(gui.CLICK, Clicked)
container.add(clickBtn,25,75)

#A label with the text added to the container
container.add(gui.Label("Text Label"),25,125)

#finally add container to the app gui
app.run(container)

Other components

#Slider
def SliderMove():
    print("Slider Moved")

s = gui.HSlider(value=23,min=0,max=100,size=20,width=120)
s.connect(gui.CHANGE, SliderMove)
container.add(s,25, 150)

#Select / List box
def SelectChanged():
    print("Select Changed")

se = gui.Select() 
se.add("Goat",'goat') 
se.add("Horse",'horse') 
se.add("Dog",'dog') 
se.add("Pig",'pig') 
se.connect(gui.CHANGE, SelectChanged)
container.add(se, 25, 200)

#Text area
t = gui.TextArea(value="Some text in a test area", width=150, height=70)
container.add(t, 25, 250)

#Progress bar
p = gui.ProgressBar(0, 0, 100, width = 300) 
p.value = 25
container.add(p, 25, 275)