Matlab - implay的默认大小窗口

4

我正在使用implay播放我想要的一些帧,问题是弹出的窗口大小有点小,因此用户必须自己最大化它,有没有办法控制弹出的窗口大小?

4个回答

7
啊,我们开始了:

这里是:

implay(Diff);
set(findall(0,'tag','spcui_scope_framework'),'position',[150 150 700 550]);

2012b版本可以使用。注意:如果您打开了多个implay窗口,这将把它们全部设置为相同的大小。

因此,您可以学习如何自己查找此类内容,我是从没有其他打开的窗口的工作区开始的。

然后我使用implay(Diff)打开了一个implay窗口。

然后我使用findall(0)来查找根为0下的所有图形/uicontrol句柄,其中0是根工作区。但是有太多了!大多数都是implay窗口的子组件 - 菜单、按钮等。所以,我只需要由根工作区创建的第一个组件。

为了得到这个,我使用了findall(0,'Parent',0); - 我也可以使用allchild(0);

我将变量分配给了这个:ImplayHandle=findall(0,'Parent',0);

并查看了它的属性:

get(ImplayHandle);

浏览这些属性时,Tag似乎是窗口的标识符'spcui_scope_framework'。我还注意到Position属性具有与图形窗口类似的大小,这是有希望的。

因此,为了检查,我尝试了findall(0,'Tag','spcui_scope_framework');,并且能够看到仅返回了单个句柄(没有子组件或菜单项也被标记为相同的标记,这是可能的)。

最后,我关闭了打开的窗口,然后再次使用implay(Diff);打开了一个新窗口。我使用set命令尝试更改窗口大小:

set(findall(0,'tag','spcui_scope_framework'),'position',[150 150 700 550]);

看到窗口大小确实已经改变,效果很好。


1
handle = implay(movie);
handle.Parent.Position = [100 100 700 550];

如果您想设置窗口大小,也可以使用此方法。


0
如果想要最大化窗口,以下代码适用于我(Windows10,Matlab R2020b)。
handle = implay('Path of the movie');
handle.Parent.WindowState= 'maximized' ;

0

您可以使用'Position'属性来控制图形的大小。
该属性期望一个4元素向量,格式为[fromX fromY width height],因此,通过改变widthheight,您可以控制图形的大小。

例如

figure( 'Position', [150 150 700 550] )

打开一个宽度为700像素,高度为550像素的新图形。


嘿,伙计,我尝试使用figure(implay(Diff),'Position', [150 150 700 550]),但是我收到了一个错误,说我使用了太多的参数。我还尝试了implay(Diff,'Position', [150 150 700 550]),但也不起作用。 - Menelaos Kotsollaris
似乎implay会自动打开一个图形。但是是否有像图形上的“位置”选项呢?Diff是我用来保存帧的数组。 - Menelaos Kotsollaris
尝试使用 implay(Diff); 然后 set(gcf,'Position', [150 150 700 550]);。或者,figure( 'Position', [150 150 700 550] ); 然后 implay(Diff) - Hugh Nolan
@HughNolan - 似乎不起作用,implay的图像看起来与“figure”不同 :( - Shai

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接