Dear PyGui 学习中遇到的坑(一)

近两天看见Dear PyGui挺好玩的,就先上手来试一下,中间遇到一些坑,先来记录一下。
好像这个库使用者目前还不多,遇到的问题很难搜索到解决方案。
根据官方教程,在进行到“Value & Data Storage”这一部分的时候,遇到了怪异现象,给大家一起分享一下。
完整代码:

from dearpygui.core import *
from dearpygui.simple import *

add_additional_font('仿宋_GB2312.ttf', 18, glyph_ranges='chinese_simplified_common')

def print_me(sendar, data):
    log_debug(f"单选框数值: {get_value('value_1')}")
    log_debug(f"文本数值: {get_value('value 2')}")
    log_debug(f"颜色数值: {get_value('color4')}")

def reset(sender, data):
    set_value("value_1", False)
    set_value("value 2", "你好!")

show_logger()

with window('数值测试'):
    add_checkbox("单选1", source="value_1")
    add_checkbox("单选2", source="value_1")
    add_input_text("输入框1", source="value 2")
    add_input_text("文本输入框2", source="value 2", password=True, tip="输入内容将作为密码使用!")
    add_button("打印源数值", callback=print_me)
    add_button("重置源数值", callback=reset)

    add_value("color4", (0.0, 0.0, 0.0, 0.0))
    add_color_edit3("RGB颜色选择 3", source="color4")
    add_color_edit4("RGBA颜色选择 4", source="color4")

start_dearpygui()

先上一张截图:
这张图片是代码一开始运行起来的状态,主窗口背景颜色室随机自动变化的。
在上一张遇到问题的图片:
这张图片是测试中遇到问题的截图
下面详细描述一下遇到的问题:
1、add_input_text输入框不能输入中文:
添加:

add_additional_font('仿宋_GB2312.ttf', 18, glyph_ranges='chinese_simplified_common')

这行代码,可以解决窗口不能显示中文汉字的问题,但是无法解决input输入框输入汉字的问题;
但是input的代码中初始值如果是汉字,目前测试可以正常显示。
目前还没找到输入中文的解决方案。

2、窗口数值和logger数值不一致问题:
在运行窗口显示的颜色数值:RGB值分别为——10,55, 232;
但是logger中的数值是——9.0,54.0, 232.0

经过几个数据测试,RGB数值中的数字会随机的减小1,不一定是三个数值中的哪一个或者哪几个,比较诡异

这两个问题先记录在这,如果大神有解决方案,还请不吝赐教。
后续有问题还会一次记录在这里

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
以下是使用Dear PyGui写的BMP图片展示窗,允许用户通过滚动条上下滚动查看大图片,并且可以点击图片以获取所点击的坐标。我们使用了Pillow库来读取并处理BMP图像。 ```python import dearpygui.dearpygui as dpg from PIL import Image # 常量定义 WINDOW_WIDTH = 800 WINDOW_HEIGHT = 600 IMAGE_WIDTH = 640 IMAGE_HEIGHT = 480 # 获取图像大小和数据 image = Image.open("test.bmp") image_width, image_height = image.size image_data = image.tobytes() # 创建主窗口和子窗口 with dpg.window(label="BMP图片展示窗", width=WINDOW_WIDTH, height=WINDOW_HEIGHT): with dpg.show(style=dpg.mvStyleVar_AntiAliased, width=IMAGE_WIDTH, height=IMAGE_HEIGHT): # 显示图像 dpg.add_image("image", value=image_data, width=IMAGE_WIDTH, height=IMAGE_HEIGHT) # 定义滚动条回调函数 def on_scrollbar_changed(sender, app_data, user_data): offset_y = dpg.get_value(sender) dpg.set_value("image", image_data[offset_y * IMAGE_WIDTH * 3:]) # 创建滚动条 dpg.add_slider_int(label="滚动条", max_value=image_height - IMAGE_HEIGHT, width=20, callback=on_scrollbar_changed) # 定义图像回调函数 def on_image_clicked(sender, app_data, user_data): cursor_pos = dpg.get_mouse_pos() img_pos = dpg.get_item_pos("image") click_pos = (cursor_pos[0] - img_pos[0], cursor_pos[1] - img_pos[1]) print("点击坐标:", click_pos) # 注册图像回调函数 dpg.set_item_callback("image", on_image_clicked) # 启动Dear PyGui主循环 dpg.start_dearpygui() ``` 运行该程序,可以看到一个BMP图片展示窗。用户可以通过滚动条上下滚动查看大图片,也可以在图片上点击以获取所点击的坐标。 ![bmppreviewer](https://user-images.githubusercontent.com/20173644/126646582-8a1e077a-df50-4ea0-b7fd-29d03c4e4fe9.png)

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值