gpt4 book ai didi

ruby - 用鞋子刷新 ruby 堆栈

转载 作者:太空宇宙 更新时间:2023-11-03 16:50:34 24 4
gpt4 key购买 nike

这可能是一个非常简单的问题,但我已经搜索了很长时间,但还没有找到任何有效的答案......

我正在尝试使用 ruby​​ 开发一个 Shoes 应用程序以获取名称列表并将其保存在文件中。我想显示已经介绍过的列表,当新名称进入列表时,显示的列表将被更新。此外,我想为列表的每个元素关联一个删除按钮,以便用户可以在需要时删除该名称。

毕竟,我唯一能得到的是你添加一个名字的部分,它被保存到一个列表中,但是添加第二个堆栈,其中包含一个带有删除按钮的所有名字的列表......不是这样幸运的。这就是我的代码的样子,函数 addName 和 saveFile 不在这里,但它们只对列表进行一些处理。此外,一些全局变量和常量定义未显示:

 Shoes.app(title: "My Higgs field!",
width: APPW, height: APPH, resizable: false) {
stack{

flow{
@edit = edit_line
@enter = button "Add"
@enter.click do
info "Enter to add #{@edit.text}"
addName(@edit.text)
end
}
@save_file = button "Guardar ficheiro"
@save_file.click do
saveFile
end
}
stack do
# Show a list with all the names inserted
$names.each do |name|
flow{
@line = para name
info "Putting line #{@line}"
@delete = button "Apagar"
@delete.click do
deleteName name
end
}
end
end
}

非常欢迎对此提出任何意见!

非常感谢!

最佳答案

鞋子问题这么久都没人回答!那不可能。这是一个完全可用的版本,我冒昧地重新组织了所有内容并使用了我最喜欢的鞋子颜色:绿色

require 'green_shoes'

Shoes.app(title: "My Higgs field!", width: 200, height: 200, resizable: false) do
@names, @list = [], nil

def update
@list.clear()
@names.each do |name|
@list.append do
flow do
para link('del'){del(name); update}, ' ', name
end
end
end
end

def add name
@names << name
@names = @names.uniq.sort
update
end

def del name
@names.delete(name)
update
end

stack do
flow do
@edit = edit_line(width: 110, height: 23)

keypress do|k|
if k == "\n"
add(@edit.text)
end
end

button "Add" do
add(@edit.text)
end

button "Save file" do
File.open("names.txt", "w+") { |file| file.write(@names.join("\n")) }
alert("names.txt is saved")
end
end

@list = flow do
@names.each do |p|
para p, :size => 10
end
end
end
end

关于ruby - 用鞋子刷新 ruby 堆栈,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23205295/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com