5

我在 Windows 7 PC 上使用 matlab R2012a (7.14.0.737) 64 位。我有 2 台显示器。我希望能够在第二台显示器(左侧)上打开一个 matlab GUI 图。

在命令行打开数字那里工作正常。

h = figure( ... , 'position',[some -value on the other screen y w h)

但是尽管 1)在 GUI 窗口属性中输入了正确的位置值和/或 2)使用代码,但 GUI 图形总是在第一台监视器上制作

set( hObject, 'position',[some -value on the other screen y w h)

在 GUI 打开功能中。

但是,如果我将此代码放在输出函数中,就可以了。不雅,你看到的图出现然后移过去。GUI 中的值也按照我希望的方式设置。似乎只是被matlab忽略了。有任何想法吗?

  • 更新 *

movegui(fig, 'onscreen')从那以后,我在打开指南创建的图形时读到了 matlab 调用。参数。我想现在的问题是如何覆盖它,或者如何将“屏幕上”设置为另一台显示器。在这方面仍然没有解决方案

4

2 回答 2

0

您会注意到 matlab 中的 GUIDE GUI 具有几个在打开时自动调用的默认函数。这是 matlab 的一个恼人的功能,其中至少有两个函数会覆盖您的默认图形定位。也许可以修改此处讨论的解决方案之一来解决您的问题。

于 2012-12-06T22:25:37.630 回答
0

这不能直接从GUIDE中完成。

解决方法

导出你的图:GuideMenu -> File -> Export

换行:

movegui(gui_hFigure,'onscreen');

和:

set(gcbf, 'position',[some -value on the other screen y w h)

对我来说(R2012a),这显示在导出的 GUI 的第 330 行附近:

...
  % openfig (called by local_openfig below) does this for guis without
  % the LayoutFcn. Be sure to do it here so guis show up on screen.
  movegui(gui_hFigure,'onscreen');   %% COMMENT OUT OR REPLACE THIS LINE
else
  gui_hFigure = local_openfig(gui_State.gui_Name, 
...
于 2012-12-07T18:14:10.743 回答