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

如何在PySimpleGui中无需点击按钮获取InputText()的输入?

无需按钮点击获取ImGui InputText()输入的方法

完全可以实现,核心是利用ImGui输入组件的实时绑定特性——InputText()会在用户输入过程中实时更新你绑定的变量,不需要依赖按钮触发就能获取输入内容。

实现步骤:

  1. 定义一个用于存储输入内容的变量(比如C++的std::string或C的char数组)。
  2. 在ImGui渲染循环中,将InputText()与这个变量绑定。
  3. 实时检查该变量是否为空,以此控制提交按钮的启用状态。

代码示例(C++):

#include "imgui.h"
#include <string>

// 全局或类成员变量
std::string userInput;

void RenderUI() {
    ImGui::Begin("表单示例");

    // 绑定输入框到userInput,输入时自动更新变量
    ImGui::InputText("请输入内容", &userInput);

    // 根据输入是否为空,禁用/启用提交按钮
    ImGui::BeginDisabled(userInput.empty());
    if (ImGui::Button("提交")) {
        // 这里编写提交逻辑,比如处理userInput的内容
    }
    ImGui::EndDisabled();

    ImGui::End();
}

原理说明:

ImGui的InputText()组件在每帧渲染时都会同步用户的输入到绑定的变量中,用户每输入一个字符,变量就会立即更新。通过BeginDisabled()和EndDisabled()这对API,就能根据输入内容的状态动态控制按钮的可用性。

如果是使用C语言的char数组,写法类似:

char userInput[256] = "";

void RenderUI() {
    ImGui::Begin("表单示例");

    ImGui::InputText("请输入内容", userInput, sizeof(userInput));

    ImGui::BeginDisabled(strlen(userInput) == 0);
    if (ImGui::Button("提交")) {
        // 提交逻辑
    }
    ImGui::EndDisabled();

    ImGui::End();
}

内容的提问来源于stack exchange,提问作者F.M

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 15:50:20