如何在 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

我也嘗試過使用zenityyad來完成 GUI,但一旦我想做任何更複雜的事情,正如你所建議的那樣,我就遇到了困難,這兩個工具並不是真正用來完成此類任務的。它們的最佳點在於非常基本的 GUI 元素,僅此而已,至少在目前的形式中是如此。

要執行更複雜的任務,您可能必須求助於實際的程式語言,例如 Python、Ruby 或 Perl,在這些語言中您可以更好地存取 GTK+ 庫,以建立它包含的各種小部件和圖形元素。

另一個競爭者是使用GTK對話框。有一個很好的教學展示了這篇 PCLinuxOS 雜誌文章可以完成的工作,標題為:使用 GTKDialog 建立 GUI

相關內容