You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用macroquad时egui::TextEdit::singleline无法编辑文本的问题

解决egui-macroquad中TextEdit无法编辑的问题

问题根源

你传递给TextEdit::singleline的是&mut "ku"——这是对静态不可变字符串字面量的可变引用,而字面量本身无法被修改,导致TextEdit组件无法进入可编辑状态。

修复代码

将静态字符串替换为可变的String变量,传递其可变引用给TextEdit:

use macroquad::prelude::*;

#[macroquad::main("")]
async fn main() {
    // 声明可变String存储输入内容
    let mut input_text = "ku".to_string();
    
    loop {
        clear_background(BLACK);
        
        egui_macroquad::ui(|egui_ctx| {
            egui_macroquad::egui::Window::new("egui ❤ macroquad").show(egui_ctx, |ui| {
                ui.colored_label(egui_macroquad::egui::Color32::WHITE, "Test");
                // 传递可变String的引用
                ui.add(egui_macroquad::egui::TextEdit::singleline(&mut input_text).text_color(egui_macroquad::egui::Color32::RED));
            });
        });

        egui_macroquad::draw();
        next_frame().await
    }
}

说明

修改后,TextEdit持有可修改的String引用,能够正常处理用户输入操作,组件即可进入可编辑状态。

内容的提问来源于stack exchange,提问作者Denis Salmanovich

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.02 14:35:21