1 votes

Interface graphique personnalisée avec quelques lignes comme AutoHotkey

Dans AutoHotkey (outil de scripting pour Windows uniquement), il est possible de créer des interfaces graphiques complètes avec très peu de lignes de code. Vous pouvez consulter le site créer une interface graphique et ajouter o modifier ses éléments. Tout élément peut avoir un listener installé en utilisant simplement l'option g-label .

Considérez cette interface :

ahk gui

Pour une meilleure compréhension, voici le code source complet de l'AHK.

gui, color, BADEFA
gui, font, s6 cRed, Verdana
gui, add, text, x150 y5, Hello!
gui, font
gui, add, text, x10 y5, This is a gui.
gui, add, dropDownList, w60 gcolor_selected vselected_color, Black|White|Green||Blue
gui, add, text, xp+70 yp+0 vcolor_prompt w120
gui, add, picture, x10, kitten.png
gui, show, center w300, I am a beatiful GUI
return
color_selected:
    gui, submit, nohide
    guicontrol,, color_prompt, You selected %selected_color%
    gui, font, c%selected_color%
    guicontrol, font, color_prompt
return

La capture d'écran ci-dessus a été réalisée en utilisant Wine . Je suis à la recherche d'un langage, d'un outil, d'un script qui offre une fonctionnalité GUI similaire à celle de AHK pour Windows, surtout en termes de simplicité. La syntaxe des coordonnées absolues (option x[X] y[Y] ) est l'exigence centrale. La meilleure solution que j'ai trouvée jusqu'à présent est la méthode Python TkInter qui ne prend même pas en charge le positionnement absolu. Est-ce la solution la plus compacte qui existe pour Ubuntu ?

0voto

phil294 Points 411

Je n'en ai pas trouvé, alors j'en ai fait un moi-même. Tcl/Tk est le plus proche que j'ai pu trouver, mais il est (comme son nom l'indique) Tcl code.

Ainsi, il est appelé TkBash et est une enveloppe bash autour du code tcl. Voici ma tentative de recréer l'image de la question :

#!/bin/bash
tkbash 1 window --theme clam --w 290 -h 200
tkbash 1 --tkcommand ". configure -background lightblue"
tkbash 1 label label1 -x 10 -y 10 -w 80 -h 20 -t "This is a gui."
tkbash 1 label label2 -x 140 -y 10 -w 30 -h 15 -t "Hello!"
tkbash 1 --tkcommand "font create myfont -family Helvetica -size 8"
tkbash 1 label2 --tkcommand "configure -font myfont"
tkbash 1 select select1 -x 10 -y 30 -w 80 -h 20 -t "Black|White|Green||Blue"
tkbash 1 label label3 -x 95 -y 30 -w 120 -h 20
tkbash 1 button button1 -x 245 -y 25 -w 30 -h 30 -t "ok" -c "
    selected_color=\"\$(tkbash 1 get select1)\"
    tkbash 1 label3 -t \"You selected \$selected_color\""
tkbash 1 image image1 -x 10 -y 60 -w 125 -h 120 --image "kitten.png"

enter image description here

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X