Python cria entradas de TUI clicáveis

1

Eu tenho um TUI para meus scripts, mas às vezes o computador só é usado com um mouse, então eu quero torná-los entradas clicáveis para o usuário

o código usa python

O código é muito longo para colar aqui, então aqui está um link para a página do github

Basicamente, o que eu quero é um texto de terminal clicável que abre um dos programas dentro do código para minimizar a carga no computador, neste caso o código é executado em um pi de framboesa e devido à RAM limitada e ao SD de 8 GB Eu tento manter tudo o mais minimalista possível.

então eu estava procurando na web enquanto publiquei esta resposta e encontrei o TKinter para gui de peso leve gráfico, comecei a brincar e descobri que para ter meus scripts mostrados com texto e tudo o que eu precisava era uma janela de terminal dentro do gui , então eu pesquisei um pouco e encontrei este

alguém estava basicamente fazendo o mesmo que eu tinha em mente, mas ele enfrentou um erro, surpreendentemente depois de uma boa hora tentando resolvê-lo, eu realmente fiz e agora tenho uma interface gráfica com botões e unidade terminal:)

---------------------------- FINALMENTE EXPLICATÓRIA COMPLETA ---------------- ---------

Então, depois de descobrir um TUI no xterm é impossível clicar em Eu olhei em diferentes opções, eu encontrei várias opções, uma estava usando zenity mas eu não gostei porque eu instalei antes (lembre-se, este é um pi de framboesa com 1 GB de RAM limitado e ele quase drenou o RPI de sua memória, praticamente aterrorizado com o fato de que isso iria acontecer novamente. Eu pulei o zenity.

Eu vi o Tkinter, que é basicamente texto para GUI, é simplista, leve (e quase fácil de usar se você conhece Python, então eu olhei mais para ele e vi quase infinito possibilidades.

Assim, comecei a reescrever meu TUI para uma GUI leve (eventualmente, ele se tornou seu próprio Thin Client, como visto em esta captura de tela )

No entanto, quando comecei, não consegui que funcionasse como eu queria (já que a maioria das minhas próprias ferramentas dependem de uma execução baseada em terminal (facilidade de uso do usuário :)), então depois de algumas pesquisas eu encontrei esse post de unixSE , esse código era EXATAMENTE o que eu necessário, mas como eu vi ele estava grampeado, então eu olhei para ele (é um hobby e meu trabalho consertar coisas de outras pessoas!), alguns minutos depois eu consertei e coloquei em ordem, então comecei a editar a maior parte isso, eventualmente, usando trechos dele no meu próprio código.

Quase duas semanas depois (WOOPS!) finalmente está concluído, o código é carregado no github para quem quiser vê-lo.

    
por patrick 02.08.2016 / 09:28

1 resposta

1

Eu baixei e instalei o Tkinter e depois de um pouco de ajustes eu fiz o trabalho

-------------------------------- EXPLICAÇÃO ADICIONADA ---------- ------------------------

então eu estava procurando na web enquanto publiquei esta resposta e encontrei o TKinter para gui de peso leve gráfico, comecei a brincar e descobri que para ter meus scripts mostrados com texto e tudo o que eu precisava era uma janela de terminal dentro do gui , então eu pesquisei um pouco e encontrei this

alguém estava basicamente fazendo o mesmo que eu tinha em mente, mas ele enfrentou um erro, surpreendentemente depois de uma boa hora tentando resolvê-lo, eu realmente fiz e agora tenho uma interface gráfica com botões e unidade terminal:)

---------------------------- FINALMENTE EXPLICATÓRIA COMPLETA ---------------- ---------

Então, depois de descobrir um TUI no xterm é impossível clicar em Eu olhei em diferentes opções, eu encontrei várias opções, uma estava usando zenity mas eu não gostei porque eu instalei antes (lembre-se, este é um pi de framboesa com 1 GB de RAM limitado e ele quase drenou o RPI de sua memória, praticamente aterrorizado com o fato de que isso iria acontecer novamente. Eu pulei o zenity.

Eu vi o Tkinter, que é basicamente texto para GUI, é simplista, leve (e quase fácil de usar se você conhece Python, então eu olhei mais para ele e vi quase infinito possibilidades.

Assim, comecei a reescrever meu TUI para uma GUI leve (eventualmente, ele se tornou seu próprio Thin Client, como visto em esta captura de tela )

No entanto, quando comecei, não consegui que funcionasse como eu queria (já que a maioria das minhas próprias ferramentas dependem de uma execução baseada em terminal (facilidade de uso do usuário :)), então depois de algumas pesquisas eu encontrei esse post de unixSE , esse código era EXATAMENTE o que eu necessário, mas como eu vi ele estava grampeado, então eu olhei para ele (é um hobby e meu trabalho consertar coisas de outras pessoas!), alguns minutos depois eu consertei e coloquei em ordem, então comecei a editar a maior parte isso, eventualmente, usando trechos dele no meu próprio código.

Quase duas semanas depois (WOOPS!) finalmente está concluído, o código é carregado no github para quem quiser vê-lo.

---------------------------- DESEJO DE ZANNA! ----------------------------

#!/usr/bin/env python
# -*- coding: utf-8 -*-
#title           : TBMenu
#Omschijving     : Geeft een simpel menu weer dat interactief is/shows a menu which is interactive
#Made by         : Patrick Pigmans
#Made for        : Servicenet-ITF
#Made at         : 2nd of August 2016
#python_version  : 2.7.12/3.5.2
#=======================================================================#

import Tkinter
from Tkinter import *
import subprocess
import os
from os import system as cmd

def test():
    os.system('sudo xterm -into %d -geometry 100x28 -sb -e overscan &' % terminfo)

def sysinfo():
    os.system('xterm -into %d -geometry 100x28 -sb -e systeminfo &' % terminfo)

def ipconf():
    os.system('xterm -into %d -geometry 51x11 -sb -e ipconfig &' % terminfo)

def Uninstall():
    os.system('sudo xterm -into %d -geometry 100x28 -sb -e TBuninstall &' % terminfo)

WINDOW_SIZE = "1024x768"
top = Tkinter.Tk()
top.geometry(WINDOW_SIZE)

Button1  = Tkinter.Button(top, text ="Systeem informatie opvragen", command=sysinfo)
Button1.pack()

Button2  = Tkinter.Button(top, text ="IP adres achterhalen", command = ipconf)
Button2.pack()

Button3  = Tkinter.Button(top, text ="Zwarte balken weghalen", command = test)
Button3.pack()

Button4 = Tkinter.Button(top, text = "Tools Verwijderen", command = Uninstall)
Button4.pack()

termin = Frame(top, height=1000, width=1000)

termin.pack(fill=BOTH, expand=YES)
terminfo = termin.winfo_id()


def send_entry_to_terminal(*args):
    cmd("%s" % (BasicCovTests))

if __name__ == "__main__":
    top.title('KEUZE MENU')
    top.mainloop()

O código normalmente acompanha o restante das minhas ferramentas, já que é apenas um menu: P

    
por patrick 02.08.2016 / 10:22

Tags