gpt4 book ai didi

c - 如何访问从 LED 文件加载的 IUP 对话框中的 GUI 元素?

转载 作者:行者123 更新时间:2023-11-30 14:58:10 24 4
gpt4 key购买 nike

我爱上了 IUP!但是,我无法弄清楚如何以编程方式访问(在 C 中)由 IupLoad() 加载的对话框中的 GUI 元素。来自 LED 文件。

一种极其费力的方法是编辑 LED 文件,以便手动为每个 GUI 元素提供句柄名称,然后手动为每个元素定义相应的变量C,然后使用 IupGetHandle() 手动将句柄加载到每个变量中.

一种舒适的方法是使用内置布局对话框工具将 LED 文件转换为 C 头文件。生成的代码使应用程序可以使用名为 Ihandle*containers[] 的简单数组中的每个元素。但这种方式剥夺了我们 LED 文件的好处,例如用户编辑二进制应用程序的 GUI 以及保持 C 代码较小的能力。

没有好的方法吗?

如果存在第三种方式,我是否高估了它的好处?

我在 the directory with C examples 中找不到任何 IupLoad() 示例.

下面我自己的示例仅为顶部元素(对话框)明确定义了一个句柄名称。它具有一个非常简单的对话框,手动定义每个元素根本不是一件困难的工作。但这只是 Stack Overflow 的一个测试示例,我的问题与复杂的对话框相关。

C 文件:

#include <stdlib.h>
#include <iup.h>

int main(int argc, char **argv)
{
IupSetGlobal("UTF8MODE", "YES");
// IupSetGlobal("UTF8MODE_FILE", "YES");
IupOpen(&argc, &argv);
if(IupLoad("dropdown.led")) IupMessage("Error", "Failed to load LED.");
else {
Ihandle *dropdown = IupGetHandle("dropdown");
IupShow(dropdown);
IupMainLoop();
}
IupClose();
return EXIT_SUCCESS;
}

对应的dropdown.led文件:

dropdown = DIALOG[TITLE=dropdown.led](
HBOX[CMARGIN=10x10,CGAP=10](
LIST[VALUE=3, 1=я, 2=ты, 3=оно, 4=мы, 5=вы, 6=они, DROPDOWN=YES](do_nothing),
LIST[VALUE=3, 1=ik, 2=je, 3=hij, 4=we, DROPDOWN=YES](do_nothing)
)
)

Two animated dropdown elements in a dialog with Russian and Dutch pronouns

这给我们带来了另一个问题:如何使俄语字符可见?但这个问题需要一个单独的线程,我将相应地创建它。

与此特定示例相关的所有问题:

  1. How do I get access to GUI elements in a IUP dialog loaded from a LED file? (当前)
  2. How can I make Russian letters visible in a IUP dialog loaded from a LED file?
  3. A gap in IUP dropdown lists

最佳答案

操作系统使用 IupGetHandle 来访问某个元素,然后使用 IupGetChild*、GetBrother、GetParent 函数来获取所需元素的方式。

另一个选项是使用 NAME 属性。您将其设置在所需的元素上,然后使用 IupGetDialogChild 检索给定 NAME 值的元素。

关于c - 如何访问从 LED 文件加载的 IUP 对话框中的 GUI 元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43449619/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com