使用imline和uiaxes

问题描述 投票:0回答:1

我正在尝试使用Matlab 2017b和appdesigner设计一个应用程序。我想使用imline函数将可移动线附加到图像。然而,appdesigner似乎使用一种新类型的对象uiaxes,而imline函数将只使用对象axes

有效的命令示例:

figure; taxes = axes;  imline(taxes, [0 0], [0 1]);

不起作用的命令示例:

figure; tuiaxes = uiaxes;  imline(tuiaxes, [0 0], [0 1]);

问题

有没有使用imline与appdesigner的解决方法?是否仍然可以使用旧的axes对象?是否有其他方法可以使用appdesigner在GUI上使用交互式线路?

matlab interactive axes matlab-gui matlab-app-designer
1个回答
1
投票

要访问qazxsw poi的基础“旧qazxsw poi对象”,我们需要做的就是axes。继续 - 我试着在R2018b中玩这个,我有一些好消息和一些坏消息。

  • 好消息是,可以通过稍微修改uiaxes函数(struct(tuiaxes).Axes)函数将imline添加到MATLAB图形中。
  • 坏消息是它不具备您可能习惯的大部分功能。

以下是最基本的步骤:

  1. 创建一个imline的副本,我们称之为<MATLAB>\R2018b\toolbox\images\imuitools\imline.m
  2. 注释掉第260-261行(与imline.m有关)和第317行(ui_imline.m)。
  3. 修改您的代码如下: cmenu

这将导致:

updateAncestorListeners(...)

如果你想要除拖动之外的任何其他功能,你可能不得不自己重写所有与uazigure不兼容的uifigure; tuiaxes = uiaxes; ui_imline(struct(tuiaxes).Axes, [0 0], [0 1]); 位,或者等待未来的未知版本为你做这件事。

© www.soinside.com 2019 - 2024. All rights reserved.