使用应用程序设计者控制输入外部m文件——基本控制

22日视图(30天)
TL:博士 我移交代码我要更新一个应用程序设计师,使用一个GUI作为输入跟踪功能和不掌握如何GUI和外部代码基本示例,我寻求帮助。
背景——我知道这个问题已经回答了几次。但我还是失去了作为高水平的例子有点适合我。我一直在使用matlab近10年来只有在基本编辑器。此外,它是唯一的编码语言我知道。
我把一些代码从一个人手里编码一个GUI。例子:
Signal_Title = uicontrol (Settings_LP“风格”,“文本”,
“字符串”,“信号分析设置”,
“单位”,“归一化”,
“位置”(GUI_Spacing_W 1 - (S1B_Title_H + GUI_Spacing_H), S1B_Title_W * 2, S1B_Title_H),
“字形大小”,Main_Title_Font);
%保存高度
height_1 = 1 - (S1B_Title_H + GUI_Spacing_H);
等等,它持续了1000行代码来创建:
每个复选框是一个初始条件,将使用以下函数。
我想更新这个应用程序设计师和我一直在苦苦挣扎。我能够构建图看起来完全相同的但我在输出控制的GUI。
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
所以我想打破这个fundamenatals问题。我希望这个复选标记与外部交互功能。
我写的世界简单的代码。
函数复选框(inputArg1)
如果inputArg1 = = 1;
结束
结束
目的是当GUI关闭。如果盒子检查。只是poplulate图结算。如果盒子并不是检查。什么也不做。我一直试图把这搬近3天但是我奋斗和理解它类、属性、回调等,没有一次视频或论坛帖子帮助我brigde差距。
classdefcheckboxtester < matlab.apps.AppBase
%属性对应于应用程序组件
属性(访问=公共)
UIFigurematlab.ui.Figure
Check1CheckBoxmatlab.ui.control.CheckBox
结束
属性(访问=公共)
Check1 = 1;%的描述
结束
方法(访问=公共)
函数appdesignfunction(应用)
复选框(app.Check1)
结束
结束
%事件回调处理组件
方法(访问=私人)
%值改变功能:Check1CheckBox
函数Check1CheckBoxValueChanged(应用程序、事件)
值= app.Check1CheckBox.Value;
如果值= = 1
app.Check1 = 1;
结束
结束
结束
这是当前appdesigner代码。沿着几个帖子后我做了外部函数的函数在程序设计师,然后说实话我不知道如何工作或如何调用属性的值。我一直挣扎在这个基本情况但是我觉得如果我把它explanded在基本条款我应该能够brigde差距。
2的评论
凯尔
凯尔 2023年6月13日18
这个线程 是我试图使用,因为它似乎是一个非常straigthforward的例子。但即使你的第一句话我……这类应用程序设计者的结果?为什么那么重要。
此外,在其电流状态。感觉我应该做我想要的。下半部分的基本示例,阻止这一数字填充是什么,当我单击复选标记?

登录置评。

接受的答案

马特·J
马特·J 2023年6月14日2小时37分跑完
编辑:马特·J 2023年6月14日2:44
从你的描述,这听起来像应用程序代码应该更简单:
classdefcheckboxtester < matlab.apps.AppBase
%属性对应于应用程序组件
属性(访问=公共)
UIFigurematlab.ui.Figure
Check1CheckBoxmatlab.ui.control.CheckBox
结束
%事件回调处理组件
方法(访问=私人)
%值改变功能:Check1CheckBox
函数Check1CheckBoxValueChanged(应用程序、事件)
复选框(app.Check1CheckBox。值);
结束
结束
结束
特别是,似乎有一个额外的属性冗余存储复选框的状态。它已经存储在app.Check1CheckBox.Value。然而,您可能希望添加一个属性存储创建的图的处理 复选框() :
函数varargout =复选框(inputArg1)
varargout = {};
如果inputArg1 = = 1;
varargout{1} =图;
结束
结束
然后,
classdefcheckboxtester < matlab.apps.AppBase
%属性对应于应用程序组件
属性(访问=公共)
UIFigurematlab.ui.Figure
Check1CheckBoxmatlab.ui.control.CheckBox
结束
属性(访问=公共)
figHandle;%的描述
结束
%事件回调处理组件
方法(访问=私人)
%值改变功能:Check1CheckBox
函数Check1CheckBoxValueChanged(应用程序、事件)
(app.Check1CheckBox app.figHandle =复选框。值);
结束
结束
结束
2的评论
马特·J
马特·J 2023年6月14日15:54
编辑:马特·J 2023年6月14日15:56
你能给我提供更多的信息吗?所以你的意思是存储处理?我特别不理解为什么redunant我不理解为什么我首先让属性。
属性是一种将数据存储在应用程序对象,以后可能需要运行GUI。复选框的开/关状态确实是回调函数可以访问的数据后在GUI窗口的生命周期。不过,我的观点是,它是不必要的存储第二个副本app.Check1,因为它已经可以作为组件app.Check1CheckBox的属性。也有两个不同的副本数据漂浮在你的应用程序很容易出错,因为你不得不担心保持一致。
如果你想要app.Check1 app.Check1CheckBox短的别名。值,有办法通过Check1 依赖房地产 ,
属性(=公共访问,依赖)
Check1 = 1;%的描述
结束
但这可能是另一次讨论。
此外,为什么失败的代码的输出命令varargout复选框。m文件?这是什么做的,允许应用程序设计师?
在你贴代码,复选框不返回任何输出辩论结局。因此,它不允许你保存处理它创建的图。我修改了它的能力。
最后,如果我想要存储的状态,选择和只有一次图填充GUI关闭,(你不需要代码如果你不想)有什么变化吗?
通常你会写的delete()方法处理GUI,你所描述的工作。在具体情况下的应用程序设计师处理,不幸的是,delete()方法自动创建appdesigner和没有可编辑的。然而,你可以做一个“填充并关闭”按钮,将填充图,然后关闭应用程序。

登录置评。

更多的答案(0)

s manbetx 845


释放

R2020b

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!