Wie erstelle ich einen Dialog mit mehreren Maßstäben in Yad oder einer anderen Alternative?

Wie erstelle ich einen Dialog mit mehreren Maßstäben in Yad oder einer anderen Alternative?

Ist es möglich, einen Dialog mit mehreren --scale inja, oder eine andere Alternative, können Sie mir helfen?

Ich hätte gerne eine Schnittstelle mit Mehrfach-Ein/Aus.

Beispiel:

Bildbeschreibung hier eingeben

Dies ist mein Skript ...

#!/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

Dies ist ein in Python geschriebenes Skript. Ich versuche, Python zu lernen. Ich weiß nicht, wie ich Werte in dieses Skript übertrage :(

#!/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()

Antwort1

Ich habe auch versucht, zu verwendenzenityUndyadum GUIs zu erstellen, aber sobald ich etwas Komplexeres machen wollte, wie Sie vorschlagen, bin ich an eine Wand gestoßen, wo diese beiden Tools nicht wirklich für solche Aufgaben gedacht sind. Ihr Sweet Spot liegt eher in sehr einfachen GUI-Elementen und nicht mehr, zumindest in ihrer aktuellen Form.

Für kompliziertere Aufgaben müssen Sie wahrscheinlich auf eine echte Programmiersprache wie Python, Ruby oder Perl zurückgreifen, bei der Sie besseren Zugriff auf die GTK+-Bibliotheken zum Erstellen der darin enthaltenen verschiedenen Widgets und grafischen Elemente erhalten.

Ein weiterer Kandidat wäre die VerwendungGTKDialog. Es gibt ein nettes Tutorial, das zeigt, was man erreichen kann, aus diesem Artikel im PCLinuxOS-Magazin mit dem Titel:Erstellen einer GUI mit GTKDialog.

verwandte Informationen