Как создать диалоговое окно с несколькими --scale-окнами в yad или другой альтернативе?

Как создать диалоговое окно с несколькими --scale-окнами в yad или другой альтернативе?

Можно ли сделать диалог с несколькими --scale вйадили другая простая альтернатива, можете ли вы мне помочь?

Мне бы хотелось иметь интерфейс с возможностью множественного включения/выключения.

Пример:

введите описание изображения здесь

Это мой сценарий...

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

This is a script writed in python,I try to learn python, I do not know how to transfer values ​​to this 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()

решение1

Я тоже пытался использоватьzenityиyadдля создания GUI, но как только я захотел сделать что-то более сложное, как вы предлагаете, я наткнулся на стену, где эти 2 инструмента на самом деле не предназначены для выполнения таких задач. Их золотая середина больше в очень базовых элементах GUI и ничего более, по крайней мере в их текущих формах.

Для выполнения более сложных задач вам, скорее всего, придется прибегнуть к реальному языку программирования, такому как Python, Ruby или Perl, где вы получите лучший доступ к библиотекам GTK+ для создания различных виджетов и графических элементов, которые он содержит.

Другим претендентом было бы использованиеGTKDialog. Есть хорошее руководство, демонстрирующее, чего можно добиться с помощью этой статьи в журнале PCLinuxOS Magazine под названием:Создание графического интерфейса с помощью GTKDialog.

Связанный контент