无法将数据设置为组合框选项
Can't set the data to a comboBox choice
这几天我一直在尝试创建一个包含所有可用模型的组合框。
代码是这样
for name , models in SortedPairs( player_manager.AllValidModels() ) do
print("name: "..name.." model: "..models)
custCbox:AddChoice(name , models , false)
end
我尝试打印每个名称和型号以了解我是否错了,但没关系:名称打印显示名称,型号打印路径。
OnSelect 函数是这样的:
custCbox.OnSelect = function( index, value, data )
modelPanel:SetModel( data )
print("Data " .. data)
print("Value " .. value)
end
数据给出显示名称,值给出数字。
为什么?
local cbox = vgui.Create( "DComboBox", BGPanel )
...
cbox:AddChoice( "Pink", Color( 255, 0, 255 ) )
function cbox:OnSelect( index, text, data )
-- Set background panel color
BGPanel:SetBackgroundColor( data )
end
注意与您的
的区别
custCbox.OnSelect = function( index, value, data )
modelPanel:SetModel( data )
print("Data " .. data)
print("Value " .. value)
end
相当于
function custCbox.onSelect(index, value, data)
-- ...
end
以及使用冒号语法的示例。
function cbox:OnSelect(index, text, data)
end
等同于
function cbox.OnSelect(self, index, text, data)
end
这个差异导致参数偏移一个。所以你认为 index
实际上是你的组合框,text
是选定的索引,data
是选择文本。
请阅读
Lua 5.4 Reference Manual: 3.4.10 Function Calls
Lua 5.4 Reference Manual: 3.4.11 Function Definitions
这是初学者很容易犯的错误。
这几天我一直在尝试创建一个包含所有可用模型的组合框。 代码是这样
for name , models in SortedPairs( player_manager.AllValidModels() ) do
print("name: "..name.." model: "..models)
custCbox:AddChoice(name , models , false)
end
我尝试打印每个名称和型号以了解我是否错了,但没关系:名称打印显示名称,型号打印路径。 OnSelect 函数是这样的:
custCbox.OnSelect = function( index, value, data )
modelPanel:SetModel( data )
print("Data " .. data)
print("Value " .. value)
end
数据给出显示名称,值给出数字。 为什么?
local cbox = vgui.Create( "DComboBox", BGPanel )
...
cbox:AddChoice( "Pink", Color( 255, 0, 255 ) )
function cbox:OnSelect( index, text, data )
-- Set background panel color
BGPanel:SetBackgroundColor( data )
end
注意与您的
的区别custCbox.OnSelect = function( index, value, data )
modelPanel:SetModel( data )
print("Data " .. data)
print("Value " .. value)
end
相当于
function custCbox.onSelect(index, value, data)
-- ...
end
以及使用冒号语法的示例。
function cbox:OnSelect(index, text, data)
end
等同于
function cbox.OnSelect(self, index, text, data)
end
这个差异导致参数偏移一个。所以你认为 index
实际上是你的组合框,text
是选定的索引,data
是选择文本。
请阅读
Lua 5.4 Reference Manual: 3.4.10 Function Calls
Lua 5.4 Reference Manual: 3.4.11 Function Definitions
这是初学者很容易犯的错误。