我正在尝试使用带有appdesigner
的Matlab 2017b设计应用程序。我想使用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上进行交互式交互?
答案 0 :(得分:1)
要访问axes
的基础“旧uiaxes
对象”,我们要做的就是struct(tuiaxes).Axes
。继续-我尝试在R2018b中玩这个游戏,但我有一些好消息和坏消息。
imline
函数(imline
)函数向MATLAB图形中添加<MATLAB>\R2018b\toolbox\images\imuitools\imline.m
。这是最基本的步骤:
imline.m
的副本,我们将其称为ui_imline.m
。cmenu
相关)和第317行(updateAncestorListeners(...)
)。如下修改您的代码:
uifigure; tuiaxes = uiaxes; ui_imline(struct(tuiaxes).Axes, [0 0], [0 1]);
这将导致:
如果除了拖动之外还需要其他功能,则可能必须自己重写imline
的所有不兼容uifigure的位,或者等待将来的未知发行版为您完成。