Introdução à programação
com Python em um contexto visual


Manipulações avançadas da janela

Os exemplos nesta página demonstram:

Tela cheia

Se voce substituir a chamada de size() por fullScreen() a janela do sketch toma toda a tela.

def setup():
    fullScreen()
    rectMode(CENTER)
    
def draw():
    background(0)
    rect(width / 2, height / 2, width / 2, height / 2) 

Note que é possível também usar a tela cheia com a indicação do renderer (como fullScreen(P3D) para desenho em 3D, por exemplo).

def setup():
    fullScreen(P3D)

def draw():
    background(0)
    translate(width / 2, height / 2)
    rotateY(frameCount / 100.0)
    box(height / 2)

Variáveis no size(), usando settings()

Por questões de implementação do Processing, não é recomendado usar variáveis nos argumentos do size, quando este está, como de costume, no setup() (as vezes até funciona!). A solução é usar uma função chamada settings() que se for definida, o Processing chama, antes do setup().

def settings():
    global img
    img = loadImage('arquivo.jpg')
    size(img.width, img.height)
 
def draw():
    background(img) 

ou

def settings():
    global img
    img = loadImage('arquivo.jpg')
    size(img.width / 2, img.height / 2)
 
def draw():
    image(img, 0, 0, img.width / 2, img.height / 2) 

Mudando o tamanho da janela com o sketch em execução

É preciso chamar this.surface.setResizable(True), em geral no setup(), o que permite também que a pessoa redimensione manualmente a janela, e depois, é posível usar this.surface.setSize(largura, altura) para mudar as dimensões pelo código do próprio programa.

def setup():
  size(400, 400);
  this.surface.setResizable(True)

def draw() :
  background(255);
  line(100, 100, width-100, height-100)

def keyPressed():
  this.surface.setSize(int(random(200, 500)),
                       int(random(200, 500)))

Um sketch com duas janelas

def setup():
    size(200, 300)
    second_window = OtherWindow("2nd")  
    
def draw():
    background(0)
    ellipse(mouseX, mouseY, 10, 10)


class OtherWindow(PApplet):  
        
    def __init__(self, title=""):
        switches = ('--sketch-path=' + sketchPath(), '')
        PApplet.runSketch(switches, self)  
        self.surface.setTitle(title)
        
    def settings(self):
        self.size(300, 200)
        
    def draw(self):  # este é o draw pra a segunda janela
        self.background(255)
        self.fill(0)
        self.rect(self.mouseX, self.mouseY, 10, 10)