【问题标题】:Updating matlab GUI out of a function called by the GUI从 GUI 调用的函数中更新 matlab GUI
【发布时间】:2013-08-20 20:08:27
【问题描述】:

我编写了一个程序来尝试进行自动测量。该程序目前运行良好,但我不确定这是否是正确的方法。

该程序由两个功能组成:

  • 测量 (测量单个设备,绘制数据并将其保存到 Excel 文件中)
  • 自动测量(使用0和1的矩阵,移动到矩阵中的所有设备,如果设备矩阵中有1,将触发测量功能。参数:Excel文件名和图形句柄/轴到要绘制的位置)

我还添加了一个用于生成设备矩阵的 GUI。一个按钮触发自动测量功能。

GUI 应该显示当前的测量值(实时显示,而不是在测量完成后),并且如果测量成功与否,它应该将另一个轴上的矩形颜色从灰色变为绿色/红色(如指示器给定点做了什么)

到目前为止,我为测量函数提供了轴的句柄,以在测量函数中绘制和格式化绘图。

我不确定如何更新矩形的东西。目前, measureAutomatically 函数获取测量结果,然后查找反应角度(按标签查找对象)并更改颜色。

不过,我希望这些功能独立于 GUI(现在不是这种情况)。那么我是否应该在 GUI 中调用一个函数来更改矩形?但我该怎么做呢?或者做这样的事情的正确方法是什么。我仍然是 matlab 的初学者,但我不仅想让它工作,而且还想学习正确的方法。

【问题讨论】:

    标签: matlab user-interface


    【解决方案1】:

    我当然会做一个接受测量状态的函数,然后做任何需要的事情

        function updateStatus(status, isGUI)
        if isGUI
            if status
                % Change the rectangle color to green
            else
                % Change the rectangle color to red
            end
        else
            if status
                % Do something else
            else
                % Do something else
            end
        end
    

    您也可以将句柄传递给图UserData 中的对象或使用setappdata/getappdata 并直接引用对象,而不是通过findobj 查找它们。但这是偏好问题。

    【讨论】:

    • 谢谢,但我想我还没有完全了解它是如何工作的。这个函数会在 GUI m 文件中还是单独的文件中?然后被 measureAutomatically 函数调用?
    • 您可以将此函数放入您的 GUI m 文件中,或将其单独放在同一文件夹中(或在 Matlab 路径中)。同样,优先考虑所有功能是在一个文件中还是在单独的文件中。我更喜欢将它们放在单独的文件中。 updateStatus 将由您的 measureAutomatically 函数调用。我已包含isGUI 选项,可用于切换到一些不同的状态指示(例如,将其写入文件)。您可以实现任何逻辑,在收到测量状态后做什么。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-05-15
    • 1970-01-01
    • 1970-01-01
    • 2016-07-31
    • 2017-12-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多