PySimpleGUI Cookbook – #09 Replacing Button with Image (.png)

Posted by


In this tutorial, we will learn how to replace a button with an image in PySimpleGUI using the PySimpleGUI Cookbook example #09 "Trocando botão por imagem .png".

Step 1: Install PySimpleGUI

If you haven’t already installed PySimpleGUI, you can do so by running the following command in your command line:

pip install PySimpleGUI

Step 2: Create a Python script

Create a new Python script and import PySimpleGUI by adding the following line at the top of your script:

import PySimpleGUI as sg

Step 3: Define the layout

Next, define the layout of your GUI. In this example, we will be replacing a button with an image. We can use the sg.Image element to display an image. Here’s an example layout that includes an image element:

layout = [
    [sg.Image(r'pathtoimage.png')],
    [sg.Button('Submit')]
]

In this layout, we have added an image element with the path to the image file ‘pathtoimage.png’. You can replace this with the path to your own image file.

Step 4: Create the window

Create a PySimpleGUI window using the layout defined above:

window = sg.Window('Image Example', layout)

Step 5: Event loop

Next, create a loop to handle events:

while True:
    event, values = window.read()
    if event == sg.WIN_CLOSED or event == 'Submit':
        break

This loop will run until the window is closed or the ‘Submit’ button is clicked.

Step 6: Run the application

Finally, run the application by adding the following code at the end of your script:

window.close()

Run your script, and you should see a window with an image displayed instead of a button.

That’s it! You have successfully replaced a button with an image using PySimpleGUI. Feel free to customize this example further or explore other PySimpleGUI Cookbook examples to learn more about creating graphical user interfaces in Python.

0 0 votes
Article Rating
13 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
@gilcleson
3 months ago

parceiro que videos bons mano!! de otima qualidade sua didatica, parabens. inscrito certokkkkk Cotinue com o trampo vai na fé. ………………………………………………esperando a aula da imagem de fundo e botoes por cima

@Fast-pti
3 months ago

top

@sexta.felipe
3 months ago

É possível fazer o mesmo com um FolderBrowse ?

@blakes8387
3 months ago

Você explica muito bem man! continua gravando que tá em ajudando bastante

@PortalConhecimentoOnline
3 months ago

Acompanhando sempre as aulas; Tentando replicar esse programa, não reconhece o import buttons, mesmo depois de instalar. Estou usando o Linux Mint, alguma dica?

@beninfo
3 months ago

Parabéns meu brother muito bom, véi tem como se fazer uma vídeo aula só com select / listbox e seleção na listbox? Assisti uma playlist sua de pysimplegui + sqlite3 achei uma beleza só a parte da listbox que me deixou um tanto perdido.
Forte abraço e sucesso.

@PlayerDemon1030
3 months ago

Acabaram as aulas do cookbook?

@lucassa7469
3 months ago

Gostei da aula….ensina a colocar a função de maximizar a janela, eu tentei e nao consigo fazer

@carloshenriquesoares6958
3 months ago

Boa noite, man! Cara, tenho aprendido muito com seus videos. Muito obrigado!

Gostaria de uma ajuda.

Estou treinando neste código:

categoria = ['Celular', 'Bateria', 'Carregador']
marca = ['Iphone', 'Motorola', 'LG']
cor = ['Branco', 'Verde', 'Preto']
fonte = 20

layout = [[sg.Text('Código', font=fonte), sg.Input(key='-COD-', font=fonte, size=(20, 1))],
[sg.Text('Unidade', font=fonte), sg.InputText(key='-UNID-', font=fonte, size=(10, 1))],
[sg.Text('Nome', font=fonte), sg.Input(key='-NOME-', size=(30, 1))],
[sg.Text('Categoria', font=fonte), sg.Combo(categoria, font=fonte, key='-CATEG-', size=(30, 1))],
[sg.Text('Marca', font=fonte), sg.Combo(marca, font=fonte, key='-MARCA-')],
[sg.Text('Cor/Estampa', font=fonte), sg.Combo(cor, font=fonte, key='-COR-')],
[sg.Text('')],
[sg.Button('Cadastrar', font=fonte), sg.Button('Cancelar', font=fonte)]]

window = sg.Window('CADASTRO DE PRODUTOS', layout, size=(700, 300))

while True:
event, values = window.read()
if event in (sg.WIN_CLOSED, 'Cancelar'):
break
if event == 'Cadastrar':
window['-NOME-'].update(window['-CATEG-'])
print(window['-COR-'])

window.close()

Gostaria que o valor escolhido no Combo cuja key='-CATEG-' fosse preenchido na key= '-NOME-'. Mas está aparecendo o seguinte: <PySimpleGUI.PySimpleGUI.Combo object at 0x7fd8bf982a60>.

Além disso, é uma boa prática criar variáveis para definir alguns parâmetros, conforme fiz no caso da fonte?

@Vicmendon
3 months ago

Muito bom, mano. Me salvou aqui!

@andreluizmelo657
3 months ago

Muito bom mano, traz videos manipulando arquivos com essa lib

@cortesdothiagofinch440
3 months ago

Força ai mano, continue fazendo videos de PySimpleGui tem muito pouco no youtube e se você fizer será um dos primeiros no mundo fazendo video de qualidade. Obrigado🖒

@AlinePereira
3 months ago

Grava mais viu , pois vc grava muito bem mais tem o jeito para a coisa , já ansiosa para os seu próximos vídeos 🥰 tb sou YouTuber te desejo muito sucesso