Files
ViperOS/Apps/HelloWorld/main.vp
T
TermiNexus 5b4bab59cc chore(ViperOS): 合并落库内核侧在途改动并移除 vpsdk wiki 拷贝
VKernel / vpsdk / Apps / Libs 共 30 个源文件:内核与 SDK 侧的新语法适配及编译修正(含 bootinfo.vp / main.vp 位宽改 uint64、gfx.vp 前向引用改指针、devfs.vp 指针解引用赋值、elf.vp 跨模块函数取值等)。删除 vpsdk/wiki/*.md(14 文件,约 -8100 行):与仓库根 wiki 重复的拷贝,统一以根 wiki 为唯一来源。
2026-10-07 19:04:33 +08:00

54 lines
1.6 KiB
Plaintext

import vpsdk.vpui as vpui
import vpsdk.window as window
import vpsdk.process as process
import vpsdk.dynlib as dynlib
import vpsdk.stdlib as stdlib
import vpsdk.stdio as stdio
from stdint import *
import t, c
@__attribute__(section(".text.startup"), aligned(16))
export def _start() -> int:
base: uint64 = 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 = uint32(0x1E1E32)
master: vpui.Tk* = &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, "", uint32(0x00FF00))
root.pack(1, vpui.PACK_BOTTOM, 0, 0, 0, 10)
def _on_submit() -> int:
text: const 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", &_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 = uint32(0x1E1E32)
master2: vpui.Tk* = &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