bimpy 开源项目教程
bimpyimgui for python 项目地址:https://gitcode.com/gh_mirrors/bi/bimpy
项目介绍
bimpy 是一个为 Python 提供的原生扩展,使用 C++ 构建,提供了对 dear imgui 的绑定,并以自包含包的形式分发,同时捆绑了 glfw 和 gl3w。bimpy 的主要特点包括:
- 即时模式 UI 与 Python 结合
- API 尽可能接近原始的 dear imgui
- 包含所有必要的功能,如窗口/OpenGL 上下文创建,并隐藏这些细节
- 能够显示来自 ndarrays、PIL Images、numpy arrays 等的图像
- 支持 Windows、GNU Linux 和 macOS
- 无依赖,易于从源码构建
项目快速启动
安装
安装 bimpy 非常简单,因为它没有外部依赖。你可以通过 pip 安装:
pip install bimpy
或者从源码构建并安装:
python setup.py install
示例代码
以下是一个简单的 "Hello World" 示例:
import bimpy
ctx = bimpy.Context()
ctx.init(600, 600, "Hello")
s = bimpy.String()
f = bimpy.Float()
while not ctx.should_close():
with ctx:
bimpy.text("Hello world ")
if bimpy.button("OK"):
print(s.value)
bimpy.input_text('string', s, 256)
bimpy.slider_float("float", f, 0, 1)
ctx.render()
应用案例和最佳实践
显示图像
bimpy 可以显示各种类型的图像,包括 numpy 数组。以下是一个显示图像的示例:
import bimpy
import numpy as np
ctx = bimpy.Context()
ctx.init(600, 600, "Image Display")
image = np.zeros((256, 256, 3), dtype=np.uint8)
im = bimpy.Image(image)
while not ctx.should_close():
with ctx:
bimpy.text("Display Image of type:")
bimpy.same_line()
bimpy.text(str(type(image)))
bimpy.image(im)
ctx.render()
非英语文本
bimpy 支持非英语文本,可以使用内置的 load_fonts
函数加载带有 CJK、西里尔字母、希腊字母的字体:
import bimpy
ctx = bimpy.Context()
ctx.init(600, 600, "Hello")
bimpy.load_fonts(chinese=True, latin_ext=True, japanese=True, cyrillic=True)
while not ctx.should_close():
with ctx:
chinese = u"學而不思則罔 思而不學則殆 "
japanese = u"二兎を追う者は一兎をも得ず "
hiragana = u"あ い う え お か "
katakana = u"ア イ ウ エ オ カ "
kanji = "川 月 木 心 火 左 北 今 "
ukrainian = "Садок вишневий коло "
polish = "Hej tam gdzieś z nad "
russian = "Ночь улица фонарь "
bimpy.text('Chinese:')
bimpy.text(chinese)
bimpy.text('Japanese:')
bimpy.text(japanese)
bimpy.bullet_text("hiragana: " + hiragana)
bimpy.bullet_text("katakana: " + katakana)
bimpy.bullet_text("kanji: " + kanji)
bimpy.text('Ukrainian:')
bimpy.text(ukrainian)
bimpy.text('Polish:')
bimpy.text(
bimpyimgui for python 项目地址:https://gitcode.com/gh_mirrors/bi/bimpy