yad または他の代替手段で複数の --scale ダイアログを作成するにはどうすればよいですか?

yad または他の代替手段で複数の --scale ダイアログを作成するにはどうすればよいですか?

複数の--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

これは Python で書かれたスクリプトです。Python を学ぼうとしていますが、このスクリプトに値を転送する方法がわかりません :(

#!/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そしてyadGUI を完成させるために、あなたが提案しているように、もっと複雑なことをしたいと思った途端、この 2 つのツールは実際にはそのようなタスクを実行するためのものではないという壁にぶつかりました。少なくとも現在の形式では、これらのツールの強みは、非常に基本的な GUI 要素にあり、それ以上のものではありません。

より複雑なタスクを実行するには、Python、Ruby、Perl などの実際のプログラミング言語に頼る必要があるでしょう。これらの言語を使用すると、GTK+ ライブラリにアクセスしやすくなり、そこに含まれるさまざまなウィジェットやグラフィカル要素を作成できます。

もう一つの候補はGTKダイアログ. この PCLinuxOS Magazine の記事から何が達成できるかを紹介する、素晴らしいチュートリアルがあります。GTKDialog で GUI を作成する

関連情報