¿Cómo crear un diálogo de escala múltiple en yad u otra alternativa?

¿Cómo crear un diálogo de escala múltiple en yad u otra alternativa?

¿Es posible crear un diálogo con múltiples escalas enjajaja, u otra alternativa fácilmente, ¿pueden ayudarme?

Me gustaría una interfaz de encendido/apagado múltiple.

Ejemplo:

ingrese la descripción de la imagen aquí

Este es mi guión...

#!/bin/sh
enable=0
disable=1

ret=$(yad --scale --value $disable --min-value $enable --max-value $disable --text "Enabla/disable sudo" --width=200 --height=100)

if [[ $ret -eq 0 ]]; then
echo 'enable'

elif [[ $ret -eq 1 ]]; then
echo 'disable'
fi

Este es un script escrito en Python, intento aprender Python, no sé cómo transferir valores a este script :(

#!/bin/python
from gi.repository import Gtk

class SwitcherWindow(Gtk.Window):

    def __init__(self):
        Gtk.Window.__init__(self, title="Switch Demo")
        self.set_border_width(10)

        hbox = Gtk.Box(spacing=6)
        self.add(hbox)

        switch = Gtk.Switch()
        switch.connect("notify::active", self.on_switch_activated)
        switch.set_active(False)
        hbox.pack_start(switch, True, True, 0)

        switch = Gtk.Switch()
        switch.connect("notify::active", self.on_switch_activated)
        switch.set_active(True)
        hbox.pack_start(switch, True, True, 0)

    def on_switch_activated(self, switch, gparam):
        if switch.get_active():
            state = "on"
        else:
            state = "off"
        print("Switch was turned", state)

win = SwitcherWindow()
win.connect("delete-event", Gtk.main_quit)
win.show_all()
Gtk.main()

Respuesta1

Yo también he intentado usarzenityyyadpara lograr GUI, pero tan pronto como quise hacer algo más complejo como usted sugiere, me topé con una pared donde estas 2 herramientas no estaban realmente destinadas a realizar tales tareas. Su punto óptimo está más en elementos GUI muy básicos y nada más, al menos en sus formas actuales.

Para realizar tareas más complicadas, probablemente tendrás que recurrir a un lenguaje de programación real como Python, Ruby o Perl, donde obtendrás un mejor acceso a las bibliotecas GTK+ para crear los diversos widgets y elementos gráficos que contiene.

Otro contendiente sería utilizarGTKDiálogo. Hay un buen tutorial que muestra lo que se puede lograr con este artículo de la revista PCLinuxOS titulado:Creando una GUI con GTKDialog.

información relacionada