【问题标题】:Remove titlebar from MATLAB GUI for full screen display从 MATLAB GUI 中删除标题栏以实现全屏显示
【发布时间】:2011-08-30 06:52:57
【问题描述】:

我创建了一个 MATLAB GUI,我想显示它以填满整个屏幕。目前,标题栏显示在最顶部。有没有办法隐藏这个标题栏?

我考虑为此目的使用 psychtoolbox,它允许全屏显示,但据我了解,这不允许包含标准 MATLAB GUI 元素。

(如果它很重要,这适用于 OSX。我显然会在使 GUI 全屏之前隐藏菜单栏。)

【问题讨论】:

    标签: user-interface matlab fullscreen


    【解决方案1】:

    我不知道这是否适用于 OSX,但在 Windows 上,我能够使用来自 this MATLAB newsgroup thread 的 Java 代码创建一个没有标题、边缘等的全屏窗口,并在中间。这是我制作窗户的方法:

    img = imread('peppers.png');  %# A sample image to display
    jimg = im2java(img);
    frame = javax.swing.JFrame;
    frame.setUndecorated(true);
    icon = javax.swing.ImageIcon(jimg);
    label = javax.swing.JLabel(icon);
    frame.getContentPane.add(label);
    frame.pack;
    screenSize = get(0,'ScreenSize');  %# Get the screen size from the root object
    frame.setSize(screenSize(3),screenSize(4));
    frame.setLocation(0,0);
    frame.show;
    

    你可以通过这样做再次隐藏框架:

    frame.hide;
    

    不确定这通常如何用于显示典型的 MATLAB GUI。我将不得不更多地玩弄它并找出答案。

    【讨论】:

    • 太棒了!您的解决方案适用于 OSX。我尝试在图形窗口上使用setUndecorated,但事实证明,一旦窗口生成,setUndecorated 不会使标题栏消失,即您必须在显示框架之前修改属性 - 这似乎只是可以通过你的方法。
    • @Jonas:是的,我尝试的第一件事是修改现有窗口,但不幸的是它不起作用。现在我正在尝试查看是否可以将 GUI 元素添加到我创建的框架中。
    • @gnovice,谢谢,您的解决方案效果很好,我使用 get(0,'monitorpositions') 命令的结果将其扩展为包括多个显示器设置。这个解决方案看起来像是使用 java (JVM) 命令而不是本机 matlab 命令来完成工作,这很好。但是我想扩展它以包括在上面创建的框架上的给定位置输出一些文本,并在运行时根据用户通过键盘输入的输入动态更新图像。我尝试使用 java 文本字段并将其添加到上面创建的框架中,但它不起作用。
    • 很好的解决方案!我现在需要帮助以使“ginput”或类似功能正常工作。我该怎么办?
    • 没人能帮上忙吗?因为这里提出的全屏显示图像的解决方案是完美的,所以现在我正在寻找一种方法来获取全屏图像上点的像素位置。问题是“ginput”在 Matlab 上打开了另一个图形。如何解决?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-01-11
    • 1970-01-01
    • 2013-07-13
    • 1970-01-01
    • 2016-12-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多