Räägime täna natuke UMList ehk plokkskeemidest. Objekte kasutavaid programme peab täpselt planeerima, parem on kõik põhjalikult läbimõelda, et keset tööd ei tuleks ootamatuid halbu üllatusi. Selleks on hea koostada plokkskeem – iga objekt (class) eraldi koos oma andmetüüpidega (nimed, arvud, nimekirjad, alamobjektid) ja objektide omavahelised suhted, st kus kasutatakse ühte objekti teise sees.
!/usr/bin/python
-*- coding: utf-8 -*-
galaktika.py:
class Taht() :
nimi = u""
koordX = 0
koordY = 0
def __init__(self, koordX, koordY) :
self.koordX=koordX
self.koordY=koordY
def annaX(self):
return int(self.koordX)
def annaY(self):
return int(self.koordY)
GalTest.py:
import wx
import random
import galaktika
class GalTest(wx.Frame):
tahed = []
def __init__(self, parent, id, title):
for i in range (1, 100):
self.tahed.append(galaktika.Taht(random.randint(50, 900), random.randint(50, 500)))
wx.Frame.__init__(self, parent, id, title, size=(1000, 600))
self.Bind(wx.EVT_PAINT, self.joonistaja)
self.Centre()
self.Show(True)
def joonistaja(self, event):
#dc - drawing contect - ehk joonistusala, selle võib ümbernimetada ka
dc = wx.PaintDC(self)
dc.SetPen(wx.Pen('#000000', 1, wx.SOLID))
dc.SetBrush(wx.Brush('#112233'))
dc.DrawRectangle(10, 15, 980, 560)
for taht in self.tahed:
dc.SetBrush(wx.Brush('#ffdd33'))
dc.DrawEllipse(taht.annaX(), taht.annaY(), 10 , 8)
app = wx.App()
GalTest(None, -1, 'Galaktika test')
app.MainLoop()
Kuidas saada kätte ekraani suurus?
ekraan=wx.GetDisplaySize()
laius = wx.GetDisplaySize().GetWidth()
korgus=wx.GetDisplaySize().GetHeight()