首页 文章

GUI图不能在双显示器上打开,但其他数字还可以

提问于
浏览
5

我在Windows 7 PC上使用64位的matlab R2012a(7.14.0.737) . 我有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忽略了 . 有任何想法吗?

  • 更新*

我已经阅读了matlab在打开引导创建的数字时调用 movegui(fig, 'onscreen') . ARG . 我想现在的问题是如何覆盖它,或者如何将'onscreen'设置为另一个监视器 . 在这方面仍然没有解决方案

2 回答

  • 0

    这不能直接在GUIDE中完成 .

    Workaround

    导出你的图:GuideMenu - >文件 - >导出

    替换线:

    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, 
    ...
    
  • 0

    你是matlab的一个烦人的功能,至少有两个这样的功能覆盖你的默认数字定位 . 也许可以修改此处讨论的解决方案之一here以解决您的问题 .

相关问题