是否可以创建一个包含多个 --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
和yad
来完成 GUI,但一旦我想做任何更复杂的事情,正如你所建议的那样,我就遇到了困难,这两个工具并不是真正适合做这样的任务。它们的最佳点在于非常基本的 GUI 元素,仅此而已,至少在目前的形式中是这样。
要执行更复杂的任务,您可能必须求助于实际的编程语言,例如 Python、Ruby 或 Perl,在这些语言中您可以更好地访问 GTK+ 库,以创建其中包含的各种小部件和图形元素。
另一个竞争者是使用GTK对话框。有一个很好的教程展示了这篇 PCLinuxOS 杂志文章可以完成的工作,标题为:使用 GTKDialog 创建 GUI。