获得使用AppDesigner拉对象的选择指数
113(30天)
显示旧的评论
吉姆Hokanson
2017年11月10日
使用AppDesigner,我怎么访问一个下拉菜单的选择指数。价值选择的字符串,但我找不到任何地方,表示选中的索引。相反,我似乎要做的:
我找= (strcmp (h.Items h.Value));
这真的是建议的方法吗?
0评论
接受的答案
马特·J
2017年11月10日
编辑:马特·J
2017年11月10日
h。根据h值属性有不同的行为。项目和h。ItemsData设置。如果你ItemsData属性定义为一系列的数值指数i = 1: N,那么h。值将被我选择对应的数值。
15个评论
吉姆Hokanson
2019年8月29日
编辑:吉姆Hokanson
2021年2月16日
AppDesigner,在编辑器下拉,有3项:价值,项目和ItemsData。默认情况下,ItemsData并不密集,这意味着价值的物品价值。然而,如果你手动输入ItemsData,那么选择ItemsData的价值。
所以在默认情况下,在Matlab版本,我得到项目={'选项1}{'选项2}{'选项3}{'选项4 '}
当选择第二个选项,价值成为“选项2”,这在某些情况下可能不是很理想。如果你输入1、2、3、4(编辑:在同一行,每行1项使得他们字符串)在ItemData领域,现在第二选择的值是2。
或者您可以输入任何你想要的选择时,你会得到特定ItemData条目。59岁的比如12、34、36当第二个元素被选择(选项2),然后你会得到34的价值。
克里斯汀•沃克
2020年4月27日
设计师,
我喜欢有价值的能力指向字符串条目数组中。然而,有很多次在代码很有用有价值指向“物品”和几行之后有价值指向索引数组。为什么不简单地把三个价值,项目,和ItemsData,代之以价值和ValueIndex,这两个参考条目数组?我怀念旧的功能,似乎更合理和更容易使用。
克丽丝
埃里克
2021年2月16日
你写的
“现在如果你输入1、2、3、4(每一行)在ItemData领域,现在第二选择的值将2。”
不幸的是当输入,itemdata将成为一个单元阵列的字符串
{' 1 ',' 2 ',“3”,“4”}
如果选择“选项1”
disp (app.DropDown.Value * 1)
将显示49因为char (49) = ' 1 '
然而,如果我们第一次将其设置为一个数值数组
app.DropDown。ItemsData = 1:numel(app.DropDown.Items);
然后disp (app.DropDown.Value * 1)将显示1
吉姆Hokanson
2021年2月16日
我认为这是我第一次在@提到MATLAB回答:)
奇怪,我不知道自从我上次测试MATLAB改变其行为。如果你输入的值在一行工作但事实上似乎多行字符串条目部队条目。没关系,在某个时刻输入1、2、3等。按照你的建议可能会令人讨厌,只是设置ItemsData在运行时可能更可取的。
埃里克
2021年2月18日
嗯,(R2019b)更新5
如果我填写1,2,3,4 ItemData第一行,然后ItemsData = {“1、2、3、4”}
所以只有一个条目,因此只选择第一个选项。所以回调会不会触发。
奇怪的是,当你编辑的价值,它给1 2 3 4的数字在不同的行。
对我来说似乎是一个错误
吉姆Hokanson
2021年2月18日
编辑:吉姆Hokanson
2021年2月18日
我只是测试2020 b和1,2,3,4产生一组数字,没有一个ellement cellstr
什么是值得的,我发现应用程序设计师是太多了。也许随着时间的推移变得更好,我不记得临界点是什么(不同的图类型?),但我发现指导不够。我只使用指南的布局,而不是代码生成。我创建一个句柄类加载GUI和处理建筑和从那里开始……
马里奥苹果
2021年2月19日
编辑:马里奥苹果
2021年2月19日
TLDR底部。
这种行为是标准的我猜,下面代码片段是跑在2020 b
一个=“b”
* 2
ans =
196年
- 如果你扩大你的项目,他们将只出现在一行这意味着它只有一个元素
- 你能检查是否ItemsData,每个条目的行吗?如果是,这将导致数据被视为细胞字符数组的数组。即使它只包含数值的,将被视为字符
一个例子,如何在应用程序设计师:你写东西
项= opt1 opt2 opt3
ItemsData = 1 2 3
%的物品将1 x1单元阵列,而项目将1 x3数字数组
项= opt1 opt2,
opt3
%注意<——有时用户喜欢用“输入”按钮完成进入这里我们有一个空行
ItemsData = 1
2
3
%的物品和ItemsData都将是3 x1字符数组的单元阵列,第三项将是空的
项= opt1 opt2
ItemsData = 1、2、3
%与上面相同的注意,一个空行
%的物品将1 x1单元阵列,而ItemsData将2 x1单元阵列的字符值,
%因为项目(1)是指ItemsData (1) ItemsData(1)将出现在价值
对后一种情况,你显示的图片,如果我扩大值框,我看到相同的,除了2020年b其他行这样的空间转移。
1
2
3
TLDR:
检查你的物品和ItemsData空行。
访问的应用程序在您的命令窗口中,您可以直接调用应用程序
应用= NameOfTheApp;
如果你已经打开了应用程序想要访问,有财产叫做RunningAppInstance应用设计师图所示。如果你可以提供更多的数据,那么使用app标签来区分从其他数据应用程序。
应用= get (findall (0,“类型”,“图”),“RunningAppInstance”);
埃里克
2021年2月19日
由于在信息如何获得一个正在运行的应用程序。
没有办法在我的版本进入ItemData成为数值数组。我做什么德承担者检查员,最终的结果都是一样的(见下文)。是的(单)值显示在检查员数字在每个其他ItemData时显示为1,2,3,4
但是,就像我说的,在2020 b版本中,这种行为显然是幸运的是改变
> > app.DropDown
ans =
下拉(选项1)属性:
值:“1 2 3 4
项目:{选项1的选项2的选项3的“选项4”}
ItemsData: {“1 2 3 4}
编辑:“关闭”
ValueChangedFcn:”
位置(131 192 100 22):
更多的答案(0)
另请参阅
标签
一个错误发生
无法完成的行动,因为页面所做的更改。重新加载页面更新状态。
你也可以从下面的列表中选择一个网站
表现最好的网站怎么走吗
选择中国网站(中文或英文)最佳站点的性能。其他MathWorks国家网站不优化的访问你的位置。