yad 또는 다른 대안에서 다중 --scale 대화 상자를 만드는 방법은 무엇입니까?

yad 또는 다른 대안에서 다중 --scale 대화 상자를 만드는 방법은 무엇입니까?

여러 개의 --scale in을 사용하여 대화 상자를 만들 수 있습니까?야드, 또는 쉽게 다른 대안을 찾을 수 있나요? 도와주실 수 있나요?

인터페이스 다중 켜기/끄기를 원합니다.

예:

여기에 이미지 설명을 입력하세요

이것은 내 스크립트입니다 ...

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

파이썬으로 작성된 스크립트입니다. 파이썬을 배우려고 하는데, 이 스크립트에 값을 어떻게 전달하는지 모르겠습니다 :(

#!/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를 구현하기 위해 노력했지만 귀하가 제안한 대로 더 복잡한 작업을 수행하려고 하자마자 이 두 도구가 실제로 그러한 작업을 수행할 수 없는 벽에 부딪혔습니다. 가장 좋은 점은 매우 기본적인 GUI 요소에 있으며 적어도 현재 형태에서는 그 이상은 아닙니다.

더 복잡한 작업을 수행하려면 Python, Ruby 또는 Perl과 같은 실제 프로그래밍 언어에 의지해야 할 것입니다. 여기서는 GTK+ 라이브러리에 포함된 다양한 위젯과 그래픽 요소를 생성하기 위해 GTK+ 라이브러리에 더 잘 액세스할 수 있습니다.

또 다른 경쟁자는 다음을 사용하는 것입니다.GTK대화상자. 이 PCLinuxOS Magazine 기사에서 수행할 수 있는 작업을 보여주는 멋진 튜토리얼이 있습니다.GTKDialog로 GUI 만들기.

관련 정보