虽然对 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 中文相关推荐

  1. linux/docker个人服务器项目中文变问号??,时间差8小时问题解决方法,最新,最有效

    前段时间在腾讯云上面买了一台个人服务器,在搭建好web项目的时候,在项目中录入中文,全部变成了问号,时间也错了,百思不得其解,后来我尝试着修改docker编码,修改系统语言,都无法改变.后来我把项目从 ...

  2. python3+ 解决写入中文乱码的问题

    case1: json格式 import json data = [{'id': ' 002', 'name': ' 小明', 'type': ' Grass', 'typeTwo': ' Poiso ...

  3. Visual Studio 中文显示乱码问题

    今天在码云上Fork了一个开源工程,编译环境是Visual Studio C++, 由于自己本地平台主要是进行Linux开发,平时文档编码格式都是utf-8的,编译没问题,但运行起来就是乱码,就像下图 ...

  4. 零基础入门--中文命名实体识别(BiLSTM+CRF模型,含代码)

    https://github.com/mali19064/LSTM-CRF-pytorch-faster 中文分词 说到命名实体抽取,先要了解一下基于字标注的中文分词. 比如一句话 "我爱北 ...

  5. 超详细中文预训练模型ERNIE使用指南-源码

    作者 | 高开远,上海交通大学,自然语言处理研究方向 最近在工作上处理的都是中文语料,也尝试了一些最近放出来的预训练模型(ERNIE,BERT-CHINESE,WWM-BERT-CHINESE),比对 ...

  6. CMD 输入中文看不到输入法的解决方法

    最近在使用CMD命令行的时候,输入拼音的时候,没有列出对应的中文选项,只有下划线.如下图. 这是因为你正在使用的是新版,只需要还原到旧版本即可 然后重启cmd. 这个时候就能正常显示拼音选项了.

  7. 用BRAT进行中文情感分析语料标注

    1.背景 情感分析是NLP中的一大分支,无论在学术界还是工业界都有广泛的研究,在SemEval语义分析会议中有单独的情感分析任务分支,其中最难的一个任务叫做ABSA:Aspect-Based Sent ...

  8. 基于BERT预训练的中文命名实体识别TensorFlow实现

    BERT-BiLSMT-CRF-NER Tensorflow solution of NER task Using BiLSTM-CRF model with Google BERT Fine-tun ...

  9. 解决plsql中文显示问号(???)问题

    最近新买的电脑,配置好数据库连接后,plsql查看数据与插入中文数据都显示问号(???),同事的都正常显示,查看了很多资料,有的说是数据库字符集的原因让修改数据库的字符集,但是我的数据库都是远程连接正 ...

最新文章

  1. jquery each
  2. 三公子论「财务自由」
  3. UVa 941 Permutations
  4. wordpress发布时间 the_title()详细参数
  5. Zabbix监控httpd服务
  6. 《通过Web远程浏览并控制Tiny6410上的usb摄像头》---实战篇
  7. 关于jsp页面显示的时间格式和Oracle数据库中的格式不一样的问题
  8. Android的TextView在显示文字的时候,如果有段中文有英文,有中文,有中文标点符号,你会发现,当要换行的时候遇到中文标点, 这一行就会空出很多空格出来...
  9. 模型评价 - 机器学习与建模中怎么克服过拟合问题?
  10. API:互联网是如何在幕后工作的?
  11. 自主开发编程语言被指Python套壳,中科院开发者道歉
  12. 机器智能芯片 10 大新秀!华为抢占一席,Google 占比最多!
  13. 利用Geotools来转换影像的坐标系[转]
  14. 文档02_JavaScript
  15. 此计算机屏保怎么取消,如何取消屏幕保护
  16. vs code中英文标点符号自动更改
  17. 计算机网络中报文摘要概念,报文摘要详细介绍
  18. 星载SAR的各项指标解读(史上最全)
  19. 大数据在金融行业的应用——银行大数据
  20. 模制适配器-市场现状及未来发展趋势

热门文章

  1. 【Java开发】设计模式 05:适配器模式
  2. 4.QOpenGLWidget-对三角形进行纹理贴图、纹理叠加
  3. 长江大学工程技术学院计算机专业分数线,长江大学工程技术学院历年分数线 2021长江大学工程技术学院录取分数线...
  4. 台式电脑组装机相关知识之显卡篇
  5. 易语言入门教程之屏幕输出程序
  6. HR经理应该掌握的5个原则
  7. 导入3D模型快速生成轮廓(PPT-2019版)
  8. 2011-3-8下午方正阿帕比笔试面试
  9. 声控计算机在线使用,「一学就会」电脑也能“声控”开机
  10. CNN:卷积神经网络