Visual Python


Gumbi, drsniki, stikala, menuji

Gumbe, drsnike, stikala in menuje lahko tvorimo, če najprej uvozimo takoimenovane "kontrole":

from visual.controls import *

Tvoriti moramo nato ločeno, kontrolno okno, mu dodati potrebne komponente (kontrole) in določiti akcije, ki morajo nastopiti pri uporabi teh komponent. Tako lahko na primer klik na kakšen gumb spremeni barvo kakšnega objekta. Po tvorbi kontrol moramo stalno klicati interakcijsko rutino in preverjati, kaj počne uporabnik. Podroben demonstracijski primer predstavlja program  "controlstest.py"

Tu poglejmo le preprost primer: Ko kliknemo na gumb, se spremeni besedilo na gumbu:
from visual.controls import *
 
def change(): # Called by controls when button is clicked
    if b.text == 'Click me':
        b.text = 'Try again'
    else:
        b.text = 'Click me'
 
c = controls() # Create controls window
# Create a button in the controls window:
b = button( pos=(0,0), width=60, height=60,
              text='Click me', action=lambda: change() )
while 1:
    c.interact() # Check for mouse events and drive specified actions


Kontrolno okno

Z metodo "controls()" tvorimo novo kontrolno okno s podanimi atributi. Primer tvorbe kontrolnega okna velikosti  300 x300, lociranega na (0,400) glede na zgornji levi rob in z napisom 'Kontrolno okno' ter z območjem okenskih koordinat x,y  med -50 in +50:

c = controls(title='Kontrolno okno',
     x=0, y=400, width=300, height=300, range=50)
Parametri kontrolnega okna so naslednji:

x, y Položaj okna na zaslonu (definirano v pikslih)

width, height Širina in višina okna v pikslih.

title Besedilo v naslovu okna.

range Območje, gledano od sredine vzdolž vsake osi. Privzeto je 100. Središče kontrolnega okna je vedno (0,0).

Kontrolne komponente - kontrole

V kontrolnem oknu lahko tvorimo naslednje komponente:   

button gumb za klikanje.
slider Drsnik za vnos numeričnih vrednosti na grafičen način.
toggle S klikom preklapljamo med dvema možnostima.
menu menu z več možnostmi.

Krmilne komponente imajo naslednje atribute:

pos Položaj komponente (center za button ali toggle, en konec drsnika slider, levi zgornji rob menuja)

color Privzeto je to siva barva

width Širina komponente

height Višina komponente

axis Os pri drsniku, ki kaže od "pos" proti drugemu koncu (podobno kot pri cilindru in puščici)

length Dolžina drsnika v smeri osi (axis)

min, max Minimalna in maksimalna vrednost za drsnik

value Vrednost  stikala ("toggle") (je 0 ali 1) ali drsnika ("slider") (je odvisna od drsnikovih min in max). Vrednost stikala ali drsnika lahko nastavlamo ali beremo. Če jo nastavljamo, ustrezna komponenta to tudi grafično ponazori. 

text Besedilo na gumbu ali v naslovu menuja

text0 Besedilo pod stikalom (ustreza njegovi vrednosti "value = 0")

text1 Besedilo nad stikalom (ustreza njegovi vrednosti 1)

action Določa Pythonov stavek, ki naj se izvede, ko rokujemo s kontrolno mkomponento

items Le pri menujih. To je seznam elementov menuja. Primer, kako dodamo element v menu z imenom m1:

        m1.items.append( ('Rdeca', lambda: barvaKocke(color.red)) )

To bi v menu dodalo element "Rdeca", ki bi,  če bi izbrali v menuju to možnost, posredoval  vrednost "color.red" funkciji "barvaKocke()". Kontrolni modul potrebuje Pythonovo konstrukcijo "lambda:" , da tako zagotovimo pravilno klicanje imenovane funkcije.