Ir ao conteúdo
  • Cadastre-se

Python Criação de menu com PysimpleGUI


Ir à solução Resolvido por Swalls,

Posts recomendados

import PySimpleGUI as sg

menu = [['Option', ['Ajuda', '---', 'Sobre o programa']], ['Exibir', ['Termos de uso']], ['Mais', ['Sair do programa']], ]

layout = [[sg.Input(size=(30, 1))],
          [sg.Menu(menu)], ]

window_1 = sg.Window('Title 1', layout)

while True:
    events, values = window_1.read()

    if events == sg.WINDOW_CLOSED:
        break

    elif events == 'Sobre o programa':
        layout_2 = [[sg.Text('Alguma coisa de nada novo sobre o programa')], ]
        window_2 = sg.Window('Title 2', layout_2)
        while True:
            events_2, values_2 = window_2.read()
            if events_2 == sg.WINDOW_CLOSED:
                window_2.close()
                break
    elif events == 'Termos de uso':
        layout_3 = [[sg.Multiline('')],]
        window_3 = sg.Window('Title 3', layout_3)

        while True:
            events_3, values_3 = window_3.read()
            if events_3 == sg.WINDOW_CLOSED:
                window_3.close()
                break

window_1.close()

Fala galera, eu fiz um código com a função de abrir novas janelas quando as mesmas são requisitadas no menu, e esse código tem como objetivo apenas testar formas de criar layouts, porém, acho que utilizando vários if, elif, while True não seja a maneira correta, então, quero saber se alguém conhece outra forma de fazer isso, bom, o código funciona mas tem alguns problemas que ainda não sei como corrigir. Esse código é bem simples, então, acho que não precisa de explicação.

Link para o comentário
Compartilhar em outros sites

  • Solução

o pyautogui é muito limitado, já faz muito tempo que brinquei com ele, deve estar diferente agora.

Mas eu desisti do projeto que estava justamente porque apresentava muitos bugs e poucas opções.

aqui tem um link para uma interface básica que fiz de forma "procedural".

Usar if e else é normal, mas se precisa de elif é porque tem forma melhor de fazer.

fazendo a interface orientada a objetos e colocando os métodos em um dict, com as funções sendo generators fica bem organizado.

 

 

 

  • Obrigado 1
Link para o comentário
Compartilhar em outros sites

@Swalls Isso é verdade mas como estou iniciando nesse mundo da programação resolvi começar com PyGUI, pois, é mais simples e faz sentido dentro da cabeça, no entanto, vou começar evoluir para uma biblioteca mais avançada como o Tkinter por exemplo. Bom saber disso, e muito obrigado pelas dicas.

Link para o comentário
Compartilhar em outros sites

@Entusiasta da Elétrica estuda tkinter não, ele não é mais avançado, tanto que é a base do pysimplegui. (obviamente tem mais coisas visto que ele que faz a base, mas é inutilmente complicado.)

Se for para ir a fundo em python, estude django(especializado em sistema completo e robusto) ou flask(especializado em velocidade de criação).

  • Obrigado 1
Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!