如何测试用户从ruby gtk进入?

时间:2017-09-05 18:44:44

标签: ruby gtk

如何在gtk对话框后测试并执行命令?我有以下内容。

dialog.default_response = Gtk::Dialog::RESPONSE_OK
label1 = Gtk::Label.new("Test1")
label2 = Gtk::Label.new("Test2")
label3 = Gtk::Label.new("Test3")
label4 = Gtk::Label.new("Test4")

resultest1 = Gtk::Entry.new
resultest2 = Gtk::Entry.new
resultest3 = Gtk::Entry.new
resultest4 = Gtk::Entry.new


table = Gtk::Table.new(4, 2, false)
table.attach_defaults(label1, 0, 1, 0, 1)
table.attach_defaults(label2, 0, 1, 1, 2)
table.attach_defaults(label3, 0, 1, 2, 3)
table.attach_defaults(label4, 0, 1, 3, 4) 
table.attach_defaults(resultest1,   1, 2, 0, 1)
table.attach_defaults(resultest2,   1, 2, 1, 2)
table.attach_defaults(resultest3,   1, 2, 2, 3)
table.attach_defaults(resultest4,   1, 2, 3, 4)
table.row_spacings = 5
table.column_spacings = 5
table.border_width = 10

dialog.vbox.add(table)
dialog.show_all

# Run the dialog and output the data if user okays it
dialog.run do |response|
  if response == Gtk::Dialog::RESPONSE_OK
    print "Do something with response 1 of the user: %s\n" % [resultest1.text]
    print "Do something with response 2 of the user: %s\n" % [resultest2.text]
    print "Do something with response 3 of the user: %s\n" % [resultest3.text]
    print "Do something with response 4 of the user: %s\n" % [resultest4.text]
  end
end
dialog.destroy
}

我想用用户响应做一些命令。例如,与响应1和2在同一行上的一个命令,如unix示例命令。如果问题1是你使用的wifi卡,问题2是要听的频道,我希望能够在Gtk ::对话框后执行以下操作: airodump-ng -c $ {运河} $ {wificard}

感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

好的,我试图解决问题,我只是改变第105行:

dialog.run do |response|
  if response == Gtk::Dialog::RESPONSE_OK
    system "airodump-ng %s\n" % [card.text] % [canal.text]

这项工作但在我的应用停止后出现以下错误:

rom test4.rb:105:in `block (2 levels) in <main>'
     from test4.rb:103:in `run'
     from test4.rb:103:in `block in <main>'

如何在gtk对话框之后使用示例命令:

system "airodump-ng -c %s\n" [channelnumber.text] [card.text]

运营商%究竟是什么?为什么我不能在一个命令行中使用所有airodump-ng标志?如果我这样开始:

system "airodump-ng %s\n" [card.text] -c [channelnumber.text]

或者那样:

system "airodump-ng %s\n" [card.text] "-c" [channelnumber.text]

我有这个错误:

test4.rb:105:in `block (2 levels) in <main>': undefined local variable or method `c' for main:Object

我知道如何使用示例ruby脚本工作系统,但我只是想了解如何使用GTK将用户条目的参数与shell命令链接,在此示例中使用airodump-ng命令。