Files
TransPyC/ViperQtProject/App/main.vp
T
TermiNexus f0a8999a6c feat(vqt6): 新增 ViperQtProject Qt6 Hello World 测试工程
- project.vpj: 静态链接 libvqt6_bridge.a,链接 Qt6.11.2 MinGW 动态库(Core/Gui/Widgets/Network)
- App/main.vp: QApplication + QWidget + QLabel + QPushButton 测试,FFI 摆放子控件几何
2026-09-02 08:53:37 +08:00

34 lines
1.1 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# main.vp — ViperQtProject:vqt6 Qt6 GUI Hello World 测试
#
# 构建需 project.vpj:
# - 静态链接 ../includes/vqt6/build/lib/libvqt6_bridge.a
# - 链接 Qt6 动态库(-L D:/Qt/6.11.2/mingw_64/lib -lQt6Core/Gui/Widgets/Network)
#
# 注意:
# - QApplication(argv) 的 argv 被包装层忽略(桥接层提供虚拟 argv),
# 这里传 t.CPtr(0)(null 指针)即可(TPV 不支持列表字面量)。
# - 高层包装 QLabel/QPushButton 未提供 move/setGeometry,直接调 FFI 摆放几何。
import t
import vqt6
def main() -> int:
# 1. QApplication(argv 被忽略,桥接层提供虚拟 argv)
app = vqt6.QApplication(t.CPtr(0))
# 2. 主窗口
win = vqt6.QWidget()
win.setWindowTitle("Viper Qt6 Demo")
win.resize(640, 480)
# 3. 子控件(直接调 FFI 设置几何位置)
label = vqt6.QLabel("Hello from Viper + Qt6!", win)
vqt6.vqt6_qwidget_set_geometry(label._ptr, 20, 20, 400, 40)
btn = vqt6.QPushButton("Click Me", win)
vqt6.vqt6_qwidget_set_geometry(btn._ptr, 20, 70, 120, 36)
# 4. 显示并进入事件循环
win.show()
return app.exec()