代码之家  ›  专栏  ›  技术社区  ›  Eric H.

是否有方法更改matlab命令窗口的标题?

  •  4
  • Eric H.  · 技术社区  · 15 年前

    我使用C++ API来启动Matlab(通过EngopsEngEnguleLeUE)。一切正常。但是我想把这个窗口的标题从“matlab命令窗口”改成其他的。

    我经常打开其中的4到5个,如果我的程序崩溃,偶尔会有一个会变成孤儿。如果我能换个头衔,我就能更好地知道哪个是哪个。

    是否有一个Matlab命令可以执行(通过EngevalString)来实现这一点?

    2 回复  |  直到 15 年前
        1
  •  10
  •   Yair Altman    15 年前

    对于Matlab 7:

    jDesktop = com.mathworks.mde.desk.MLDesktop.getInstance;
    jDesktop.getMainFrame.setTitle('my new title');
    

    *或者专门针对命令窗口:

    cmdWin = jDesktop.getClient('Command Window');
    cmdWin.getTopLevelAncestor.setTitle('my new title');
    

    对于Matlab 6:

    jDesktop = com.mathworks.ide.desktop.MLDesktop.getMLDesktop;
    jDesktop.getMainFrame.setTitle('my new title');
    

    *或者对于命令窗口:

    cmdWin = jDesktop.getClient('Command Window');
    cmdWin.getTopLevelWindow.setTitle('my new title');
    


    其他相关的未记录桌面功能如下所述:
    http://UndocumentedMatlab.com/blog/tag/desktop/

        2
  •  1
  •   Andrew Janke    15 年前

    直接对Java AWT类进行编码。这可能更灵活,并且在MATLAB引擎下运行在C++下。(因为我不使用引擎,所以还没有在这种情况下测试过它。)

    function change_win_title(oldName, newName)
    
    wins = java.awt.Window.getOwnerlessWindows();
    for i = 1:numel(wins)
        if isequal(char(wins(i).getTitle()), oldName)
            wins(i).setTitle(newName);
        end
    end
    

    你会这样用的。

    change_win_title('MATLAB Command Window', 'My new window name')
    

    您可以使用其他测试(窗口类等)来标识感兴趣的窗口。