Блог им. kurd

Удобство использования визуального интерфейса IUP в Quik Lua

Не так давно я сетовал на неудобства IUP smart-lab.ru/blog/1212710.php
Это «не точно». На самом деле есть возможность вывешивать из скрипта main() в Quik Lua немодальные окна IUP.
require("iuplua")
local interrupted

function OnStop()
  interrupted = true
end
--[[
function sleep(n) -- standalone
  if n > 0 then
    os.execute("ping -n "..
      tonumber(n) .." localhost > nul")
  end
end
--]]
function main()
  local btn1 = iup.button { title = "Show Dialog", }
  function btn1:action()
    local r = iup.Alarm("", "Main Title doesn't update!", "Exit")
    if r == 1 then
      interrupted = true
    end
  end -- btn1:action()

  local btn2 = iup.button { title = "Show menu", }
  function btn2:action()
    local item = iup.item { title = "Exit", }
    function item:action()
      interrupted = true
    end

    local menu = iup.menu {
      iup.item { title = "Dialog title doesn't update!",
      active = "NO", }, item
    }:popup(iup.MOUSEPOS, iup. <a name="cut"></a> MOUSEPOS)
  end -- btn2:action()

  local dlg = iup.dialog {
    iup.vbox { btn1, btn2 };
    size = "EIGHTHxEIGHTH",
  }
  function dlg:close_cb()
    interrupted = true
  end --  dlg:close_cb()

  dlg:show()
  local file = io.open("log.txt", "w+")
  if file then
    local pretime = 0
    while not interrupted do
      iup.LoopStep()
      local curtime = os.time()
      if pretime ~= curtime then
        pretime = curtime
        dlg.title = curtime
        file:write (curtime, "\n")
        --file:flush()
      end
      sleep(10) -- sleep(1) -- standalone
    end
    file:close()
  end
  dlg:destroy()
  iup.Close()
  message ("OK")
end -- main()

--main()-- standalone
--print "OK"

	
С-Л продолжает мелкие пакости. Исправьте его ляпсус на
popup(iup.MOUSEPOS, iup.MOUSEPOS)
В немодальном окне IUP можно проделывать любые манипуляции с двусторонней связью между этим окном и скриптом, пока скрипт делает, что в нём закодировано.
Пользуйтесь на здоровье.

NB Есть более простой способ «визуального интерфейса». В каком-то файл, например, Data.lua, можно разместить данные типа
Data = { valu1 = 1, value2 = «2» }
и получить их для скрипта двумя строками кода в скрипте
 os.execute («notepad.exe »… path ..«Data.lua»)
dofile (path ..«Data.lua»), где path — путь на файл Data.lua.

PS Снимок не слишком впечатляющий
Удобство использования визуального интерфейса IUP в Quik Lua
но видно, что окошко IUP вверху справа может быть за пределами окна Quik. Окно «Доступные скрипты» можно свернуть в низ окна Quik'а, о окно IUP — на таскбар Windows.
Данная публикация является личным мнением автора. Мнение владельца сайта может не совпадать с мнением автора.
  • обсудить на форуме:
  • Quik Lua
724 | ★2

Читайте на SMART-LAB:
Фото
Витрина облигаций
Рубль на максимумах: время фиксировать доходность в валюте? ↗️ Национальная валюта укрепилась до уровня 10,8 рублей за юань, вновь...
Фото
GBP/USD: Импульс пробоя открывает путь к затяжной коррекции
«Старый джентльмен» все-таки оттолкнулся от сопротивления 1.3560, которое не поддавалось штурму несколько недель. Сейчас пара пробила...
Фото
От автопрома до инвестиционного портфеля
◻️ Платиноиды привычно ассоциируются с драгоценными украшениями . Однако главные сферы их применения лежат далеко за пределами витрин ювелирных...
Фото
Хэдхантер. Отчет МСФО за Q1 2026г. Всё будет непросто…но…есть надежда.
Вышли финансовые результаты по МСФО за Q1 2026г. от компании Хэдхантер: 👉Выручка — 9,49 млрд руб. (-1,5% г/г) 👉Операционные расходы —...

теги блога Rostislav Kudryashov

....все тэги



UPDONW
Новый дизайн