八度更改 UIControl 位置

Posted

技术标签:

【中文标题】八度更改 UIControl 位置【英文标题】:Octave Change UIControl Position 【发布时间】:2019-05-13 16:28:37 【问题描述】:

以下是来自 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 中运行?

【问题讨论】:

【参考方案1】:

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

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

所以你可以替换

b.Position = [100 100 50 20];

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

【讨论】:

谢谢。这完美无缺。它在 Matlab 中也可以双向工作。 @kainaw 确实,旧的语法并没有被删除,在可预见的将来也不会被删除。我已经添加了一个句子来解决这个问题。

以上是关于八度更改 UIControl 位置的主要内容,如果未能解决你的问题,请参考以下文章

UIControl.frame 属性的生命周期和有效性

突出显示时如何更改 UIControl 的大小?

数据更改时如何对 UIControl 调整大小做出反应

在 Objective-C 中,如何通过 UIControl 更改类内部实例的属性?

通过点击它来改变 UIView/UIControl 的屏幕位置

Matlab Imppoint 和 Uicontrol