首页 > 解决方案 > 八度更改 UIControl 位置

问题描述

以下是来自 Matlab 的示例代码。它不在 Octave 中运行。代码是:

f = figure;
b = uicontrol(f,'Style','pushbutton');
b.Position = [100 100 50 20];

它来自在线文档:https ://www.mathworks.com/help/matlab/ref/matlab.ui.control.uicontrol-properties.html

在 Octave 中,我得到:错误:标量不能用 .

必须进行哪些更改才能在 Octave 中运行?

标签: octaveuicontrol

解决方案


MATLAB 几年前推出了第二版句柄图形系统 (HG2)。Octave 仍然使用旧系统。

每次你看到handle.propery,你都在处理 HG2。在原始系统中,我们使用get(handle,'property')set(handle,'property',newvalue)。请注意,MATLAB 不会很快弃用这种原始语法,在较新版本的 MATLAB 中使用这两种形式是完全有效的。因此,出于兼容性原因,最好使用set和函数。get

所以你可以更换

b.Position = [100 100 50 20];

set(b,'Position',[100 100 50 20]);

推荐阅读