Files
ViperOS/Apps/HelloWorld/main.py
2026-07-19 12:38:20 +08:00

52 lines
1.6 KiB
Python

import vpsdk.vpui as vpui
import vpsdk.window as window
import vpsdk.process as process
import vpsdk.dynlib as dynlib
from stdint import *
import t, c
@c.Attribute(t.attr.section(".text.startup"), t.attr.aligned(16))
def _start() -> t.CInt | t.CExport:
base: t.CUInt64T = dynlib.load_so("/LIBS/SLOG.SO")
if base != 0:
dynlib.so_call1("log_info", "Hello from dynamic library!")
root: vpui.Tk = vpui.Tk()
root.title("Input Demo")
root.set_style(window.STYLE_WIN7)
root.geometry(290, 30, 300, 200)
root.bg_color = t.CUInt32T(0x1E1E32)
master: vpui.Tk | t.CPtr = c.Addr(root)
entry: vpui.Entry = vpui.Entry(master, 260, 28)
root.pack(0, vpui.PACK_TOP, vpui.FILL_X, 0, 20, 10)
result: vpui.Label = vpui.Label(master, "", t.CUInt32T(0x00FF00))
root.pack(1, vpui.PACK_BOTTOM, 0, 0, 0, 10)
def _on_submit() -> t.CInt:
text: t.CConst | str = entry.get()
result.config(text)
entry.delete(0, -1)
return 0
lbl: vpui.Label = vpui.Label(master, "Name:", 0xFFFFFFFF)
root.pack(2, vpui.PACK_TOP, 0, 0, 20, 0)
btn: vpui.Button = vpui.Button(master, 100, 36, "Submit", c.Addr(_on_submit))
root.pack(3, vpui.PACK_TOP, 0, 0, 0, 10)
root2: vpui.Tk = vpui.Tk()
root2.title("Test No-Resp")
root2.set_style(window.STYLE_WIN10)
root2.geometry(200, 50, 300, 150)
root2.bg_color = t.CUInt32T(0x1E1E32)
master2: vpui.Tk | t.CPtr = c.Addr(root2)
lbl2: vpui.Label = vpui.Label(master2, "This window will NOT respond!", 0xFFFFFFFF)
lbl2.place(10, 10)
root2.update()
root.mainloop()
process.exit(0)
return 0