pyimgui 中文
虽然对 imgui 接触有一段时间了,但还是第一次介绍imgui,imgui 是一个比较优异的轻量级界面渲染项目,其理论上做到了模块的方式去编程界面, 比qt上手容易很多, 环境搭建和项目的编译也比较好, 比qt要简单很多, 再结合python,效果更加好了。
上手imgui直接看官方 demo 代码,底层渲染有 gl,direct,sdl 等实现。
渲染速度非常快, 社区维护也非常活跃。
再结合python特性,pyimgui 项目可以说将界面编程变成了一个上手快,效果快,调试方便等特点。
imgui 项目采用了大量的push, pop方法来做属性的配置, 我们可以是用python在做,比如颜色。
class ncolor:def __init__(self, rgba=[], wtype=[]):self.rgba = rgbaself.wtype = wtypepassdef __exit__(self, exc_t, exc_v, trace):if len(self.rgba) == 0: returnimgui.pop_style_color(len(self.rgba))def __enter__(self):for i, t in enumerate(self.wtype):imgui.push_style_color(t, *(self.rgba[i]))
使用的时候,直接
with ncolor([colorsys.hsv_to_rgb(.9, .6, .6)],[imgui.COLOR_TEXT]):imgui.text('abc')
当然,中文也是界面处理的一个难点,反正我不清楚, 我折腾了三四天,总算找到眉目。
# -*- coding: utf-8 -*-
from __future__ import absolute_importimport pyglet
from pyglet import gl
from testwindow import show_test_windowimport imgui
# Note that we could explicitly choose to use PygletFixedPipelineRenderer
# or PygletProgrammablePipelineRenderer, but create_renderer handles the
# version checking for us.
from imgui.integrations.pyglet import create_rendererdef main():window = pyglet.window.Window(width=1280, height=720, resizable=True)gl.glClearColor(1, 1, 1, 1)imgui.create_context()impl = create_renderer(window)io = imgui.get_io()# a.ttf 是包含中文编码字符实现的ttf文件, chinese_font = io.fonts.add_font_from_file_ttf('a.ttf',20,io.fonts.get_glyph_ranges_chinese_full())# 注意这一句, 这里会去加载字符,没有会报错impl.refresh_font_texture()def update(dt):imgui.new_frame()if imgui.begin_main_menu_bar():if imgui.begin_menu("File", True):clicked_quit, selected_quit = imgui.menu_item("Quit", 'Cmd+Q', False, True)if clicked_quit:exit(1)imgui.end_menu()imgui.end_main_menu_bar()show_test_window()# 这里是中文的样例imgui.push_font(chinese_font)imgui.begin('韵abcd',True)imgui.pop_font()imgui.end()def draw(dt):update(dt)window.clear()imgui.render()impl.render(imgui.get_draw_data())pyglet.clock.schedule_interval(draw, 1/120.)pyglet.app.run()impl.shutdown()if __name__ == "__main__":main()
总的来说,imgui 项目对界面编程相对qt更加友好,更加贴近底层的封装, 欢迎大家尝试交流。
pyimgui 中文相关推荐
- linux/docker个人服务器项目中文变问号??,时间差8小时问题解决方法,最新,最有效
前段时间在腾讯云上面买了一台个人服务器,在搭建好web项目的时候,在项目中录入中文,全部变成了问号,时间也错了,百思不得其解,后来我尝试着修改docker编码,修改系统语言,都无法改变.后来我把项目从 ...
- python3+ 解决写入中文乱码的问题
case1: json格式 import json data = [{'id': ' 002', 'name': ' 小明', 'type': ' Grass', 'typeTwo': ' Poiso ...
- Visual Studio 中文显示乱码问题
今天在码云上Fork了一个开源工程,编译环境是Visual Studio C++, 由于自己本地平台主要是进行Linux开发,平时文档编码格式都是utf-8的,编译没问题,但运行起来就是乱码,就像下图 ...
- 零基础入门--中文命名实体识别(BiLSTM+CRF模型,含代码)
https://github.com/mali19064/LSTM-CRF-pytorch-faster 中文分词 说到命名实体抽取,先要了解一下基于字标注的中文分词. 比如一句话 "我爱北 ...
- 超详细中文预训练模型ERNIE使用指南-源码
作者 | 高开远,上海交通大学,自然语言处理研究方向 最近在工作上处理的都是中文语料,也尝试了一些最近放出来的预训练模型(ERNIE,BERT-CHINESE,WWM-BERT-CHINESE),比对 ...
- CMD 输入中文看不到输入法的解决方法
最近在使用CMD命令行的时候,输入拼音的时候,没有列出对应的中文选项,只有下划线.如下图. 这是因为你正在使用的是新版,只需要还原到旧版本即可 然后重启cmd. 这个时候就能正常显示拼音选项了.
- 用BRAT进行中文情感分析语料标注
1.背景 情感分析是NLP中的一大分支,无论在学术界还是工业界都有广泛的研究,在SemEval语义分析会议中有单独的情感分析任务分支,其中最难的一个任务叫做ABSA:Aspect-Based Sent ...
- 基于BERT预训练的中文命名实体识别TensorFlow实现
BERT-BiLSMT-CRF-NER Tensorflow solution of NER task Using BiLSTM-CRF model with Google BERT Fine-tun ...
- 解决plsql中文显示问号(???)问题
最近新买的电脑,配置好数据库连接后,plsql查看数据与插入中文数据都显示问号(???),同事的都正常显示,查看了很多资料,有的说是数据库字符集的原因让修改数据库的字符集,但是我的数据库都是远程连接正 ...
最新文章
- jquery each
- 三公子论「财务自由」
- UVa 941 Permutations
- wordpress发布时间 the_title()详细参数
- Zabbix监控httpd服务
- 《通过Web远程浏览并控制Tiny6410上的usb摄像头》---实战篇
- 关于jsp页面显示的时间格式和Oracle数据库中的格式不一样的问题
- Android的TextView在显示文字的时候,如果有段中文有英文,有中文,有中文标点符号,你会发现,当要换行的时候遇到中文标点, 这一行就会空出很多空格出来...
- 模型评价 - 机器学习与建模中怎么克服过拟合问题?
- API:互联网是如何在幕后工作的?
- 自主开发编程语言被指Python套壳,中科院开发者道歉
- 机器智能芯片 10 大新秀!华为抢占一席,Google 占比最多!
- 利用Geotools来转换影像的坐标系[转]
- 文档02_JavaScript
- 此计算机屏保怎么取消,如何取消屏幕保护
- vs code中英文标点符号自动更改
- 计算机网络中报文摘要概念,报文摘要详细介绍
- 星载SAR的各项指标解读(史上最全)
- 大数据在金融行业的应用——银行大数据
- 模制适配器-市场现状及未来发展趋势