Логика создания динамически именованных элементов графического интерфейса в плагине WoWA WoW - PullRequest
0 голосов
/ 27 сентября 2019

Что я хочу сделать, это вставить элементы (метки) из таблицы в контейнер с полосой прокрутки, используя WowAce-Gui3.0.Поскольку я не знаю, сколько ярлыков будет в таблице, я не могу их статически назвать.

Я пытался применить цикл for, генерировать ярлыки и вставлять их в новыйтаблица за индексом, вызывая индекс таблицы, чтобы добавить его в пользовательский интерфейс.

Это, похоже, не работает, и кажется ОЧЕНЬ грязным.

-- function that draws the widgets for the second tab
    local function DrawGroup2(container)
      local f = AceGUI:Create("SimpleGroup")
      container:AddChild(f)
      f:SetLayout("Fill") --Fill will make the first child fill the whole content area
      local scrollWindow = AceGUI:Create("ScrollFrame")
      f:AddChild(scrollWindow)
      scrollWindow:SetLayout("Flow")
      local labels = {}
      for i=1,table.getn(list) do
        local name = list[i].fullName;
        local level = list[i].level
        local class = list[i].classStr
        local area = list[i].area
        local playerString = name .. " " .. level .. " " .. class .. " " .. area
        tempLabel = AceGUI:Create("Label")
        tempLabel:SetText(playerString)
        tempLabel:SetFullWidth(true)
        labels[i]=theLabel
      end
      scrollWindow.AddChild(labels[1])

    end

Я ожидаю, что это добавит их в качестве ребенка в мой пользовательский интерфейс, но ошибка с жалобой на значение nilи появляется self.

"Сообщение: ... erface \ AddOns \ Recount \ Libs \ AceGUI-3.0 \ AceGUI-3.0.lua, строка 434: попытка индексировать локальное 'self' (нулевое значение)"

Я даже не касаюсь Пересчета, но я думаю, что делюсь экземпляром библиотеки.

...