问题标签 [matlab-gui]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
1707 浏览

matlab - 在多监视器配置中确定 MATLAB 的监视器

我经常从一个公司站点搬到另一个站点。在任何一天,我可能只有我的笔记本电脑或多达四台显示器。对于多台显示器,我不知道我会选择哪个显示器用于 MATLAB 主 GUI(双击 matlab.exe 时启动的主 GUI)。这取决于可用显示器的分辨率。

我使用的脚本利用了以编程方式生成的 GUI(不是通过 GUIDE),而且似乎 MATLAB 总是在第一台显示器上弹出它们。我进行了一些研究,发现可以使用 、 和 命令将 GUI 定位到选择的监视器p = get(gcf, 'Position')set(0, 'DefaultFigurePosition', p)但这movegui只有在我事先知道要使用哪个监视器时才有效。

有没有办法找出主 MATLAB GUI 在哪个监视器上启动并在同一监视器上弹出其他小 GUI?

0 投票
0 回答
74 浏览

matlab - 图打开时MATLAB防止函数返回

我以编程方式(不是在 GUIDE 中)构建了一个 GUI,它接受来自用户的大量输入。它由另一个脚本(在另一个 .m 文件中)调用。GUI 返回 3 个变量。

我的问题是调用脚本的执行似乎在 MyGUIfunction 完成(并返回变量)之前继续。

MATLAB 返回错误消息:

此错误消息为真,直到用户完成输入并关闭图形后才设置 XY 和 Z。

在确定 XY 和 Z 之前,如何防止调用脚本继续执行?我尝试了 uiwait() 但无法获得所需的行为。

编辑 2016-06-27

这个功能:

调用此函数:

0 投票
1 回答
295 浏览

matlab-gui - Matlab R2015b 按代码选择单选按钮

以下代码创建 3 个单选按钮。选择功能确保显示适当的内容:

我想更改每个代码显示的选择和内容(没有用户点击)。我可以将每个代码的单选按钮选择设置为:

这将为正确的单选按钮绘制蓝点(似乎已选中),但是未显示正确的内容。我想我需要手动调用'SelectionChangedFcn',我不能,因为它要求'callbackdata',这是一个'matlab.ui.eventdata.SelectionChangedData'类,还没有文档。

问题:在编码单选按钮更改时,我是否需要自己创建“回调数据”以“从外部”调用 SelectionChangedFcn,还是有其他方法?

问题2:我会就“HandleVisibility”为什么/何时有用或没有用的一个小提示,MatLab 文档对我来说太神秘了。

0 投票
2 回答
101 浏览

matlab - 设置“编辑”字段的字符串属性时插入符号卡住

我正在使用编程方法在 Matlab 中构建 GUI(所以没有 GUIDE 和没有 AppDesigner)。我的 GUI 包含一个只应接受某些输入的编辑字段。因此,我使用了一个回调来清理输入,然后相应地更新编辑字段的 String 属性。但是,当我更新 String 属性时,插入符号(“光标)”卡住了:它停止闪烁,尽管您仍然可以左右移动它,但它的幻影副本仍将绘制在输入的左边缘。

最小工作示例,使用随机数:

结果(在 Win7 上,使用 Matlab2016a 或 Matlab2014b):

在此处输入图像描述

如何在插入符号卡住的情况下更新字段内的字符串?

0 投票
1 回答
99 浏览

matlab - 如何在 gui 回调函数中等待正在运行的函数终止?

当用户单击轴对象时,我的程序会运行一个函数。此函数使用光标的位置并将其进度显示为动画。我需要的是在用户单击新位置时停止当前正在运行的函数调用,然后为这个新位置调用函数。

我的代码是这样的(在我使用的原始代码中guidata,而handles不是全局变量):

我的问题是任何较新的点击都会中断当前正在运行的函数并保持以前Animate在堆栈中运行。它使上一个动画的最后一个绘图保持可见。更糟糕的是堆栈的大小似乎是 8 并且新的中断将存储在队列中!这意味着用户只能更新 8 次位置。要查看问题,您可以运行上面的代码示例并重复单击轴对象。

现在,我想检查是否Animate正在运行AxisButtonDownFcn,并等待其终止(或强制终止),然后Animate使用新参数调用。

0 投票
1 回答
45 浏览

matlab - 如何在 GUI matlab 中使对象成为当前对象?

我构建了一个函数“sng_figureslide”,它会生成一个滑块,该滑块可以滑过所有已创建的图形。我必须单击 de 滑块才能使用箭头键控制它。

我想知道当我调用该函数时是否可以使滑块对象处于活动状态,这样我就不必提前单击滑块。

此外,我认为这个功能对很多人来说非常有用,所以请随意使用它。

0 投票
1 回答
228 浏览

matlab - 使用 uigetdir 作为按钮的回调,由于奇怪的无效参数而崩溃

我正在尝试在 Matlab (R2016a) GUI 上创建一个简单的“浏览”按钮。我的代码是这样的:

回调函数uigetdir有 2 个可选参数STARTPATH, TITLE。原则上,我可以通过将它们与单元格数组上的函数句柄连接起来将它们传递给我的回调,例如

无论我的浏览按钮调用是否uigetdir带有可选参数,它都会崩溃。不同的错误,相同的原因:uicontrol决定包含 2 个未调用的、奇怪的变量(包含 UI 属性)作为回调函数的参数,并且uigetdir不知道如何处理它们。

这是否意味着我不能使用uigetdir(或几乎任何其他内置函数)作为 GUI 中的回调函数?除了写自定义函数,肯定还有解决办法吧?

0 投票
2 回答
607 浏览

matlab - 如何在不关闭 GUI 本身的情况下关闭 GUI 中的所有图形?

我正在使用 Matlab Guide 制作用户界面。在此界面中,我运行绘制各种图形的 .m 文件。经过分析,我想在不关闭 GUI 的情况下关闭图形。如果我使用全部关闭;包括 GUI 本身在内的所有图表都会关闭。但是,如果我使用close; GUI 关闭而不关闭图形。我该如何解决这个问题?

0 投票
2 回答
611 浏览

matlab - 如何通过回调函数传递 varargin

我正在为带有几个运行回调函数的 GUI 项目的图形窗口编写代码。目前我有一个文本框和一个滑块控件,我进行了设置,以便对文本框值的更改不仅会更改显示的数据,还会更新滑块位置以匹配该值。我遇到的问题是试图让我的varargin参数(在创建图形窗口时输入到主函数中)不被包含在父cell变量中。当我的顶层varargin包含一个值参数对时,varargin是一个cell维度为 1x2 。没关系。通常,可以将所有这些参数传递给内部函数调用,如下所示:

该函数会dosomething看到正确的参数列表。但是当我通过定义传递 varargins 时callback,如

然后该函数 doslide调用绘图更新函数dordplot

内部doslidevarargin是一个 1x1 单元格,其中包含预期的 1x2 单元格。

我在我的最终函数中添加了一个 kludge fix,其中varargin实际使用了

varargin但是,一开始就被包裹在牢房里似乎是错误的。
是否有修复,或者我是否错误地定义了我的回调函数调用?

0 投票
1 回答
74 浏览

matlab - 图像更改时,Matlab WindowButtonMotion 回调停止工作

在我的 GUIDE 生成的 gui 中,我有一个轴对象,imshow()当 gui 初始化时,我将位图放入其中。我有一个 WindowButtonMotion 回调定义为:

我在工具栏上的打开文件按钮上有一个回调:

新图像显示在 gui 的坐标区对象中后,指针不再变为坐标区对象上的十字。问题与新显示的图像有关,因为如果我注释掉实际显示新图像的代码部分,则在调用 openFile 回调后指针显示为十字。