gpt4 book ai didi

c++ - 更改娜娜列表框中的值

转载 作者:行者123 更新时间:2023-11-30 03:30:27 25 4
gpt4 key购买 nike

我正在尝试创建一个带有属性网格(名称:值对的网格)的 GUI

列表框小部件似乎是开始的方式。 (如果有更好的东西请指正)

我编写的代码(如下)编译并运行。初始名称/值对显示正常,但尝试更改第一项的值没有任何效果。

我看过几个列表框的例子,但是找不到一个简单的方法来改变列表框初始化后的值

int main()
{
using namespace nana;

// form to hold everything
form fm;

// listbox to be the property grid
listbox lb(fm, nana::rectangle(10, 10, 280, 120));

// column headers
lb.append_header("Name", 200);
lb.append_header("Value", 200);

// add two items to the default category
lb.at(0).append({"A", "0"});
lb.at(0).append({"B", "0"});

// change value of A item to 32 ( fails to do anything )
lb.at(listbox::index_pair(0,1)).value("32");

fm.show();
exec();
}

也试过(不编译)

lb.at(listbox::index_pair(0,1)).value({"A","32"});

和(运行,没有效果)

lb.anyobj(0, 0, "32");

最佳答案

您正在使用非常低级的功能。有more convenient higth level functions设置/更改列表框中的值/文本/项目(使用 STL containersresolvers )。

假设您想使用这些低级函数是因为您想实现自己的高级 API,这里有一些事实:

item_proxyvalue 函数您正在访问 at(index_pair) 将使您能够访问您之前附加到该项目的某些对象。您还没有附加任何对象。您可以有效地首先附加一个对象,或者您可以继续直接使用文本。最简单的“破解”是使用函数文本:lb.at(listbox::index_pair(0,1)).text(1,"32"),它设置列的文本该项目的 1 个。

编辑:一个相对简单易懂的解释:3-methods-to-insert-data-into-listbox

关于c++ - 更改娜娜列表框中的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44978618/

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