MATLAB社区

MATLAB、社区和更多

管理布局布局管理的缺失


我想欢迎客人的博客作者布莱恩·科迪MATLAB GUI工具包的团队。布莱恩偶尔会在这里写博客的在MATLAB桌面博客。

当我闲逛在MATLAB中央时,我发现没有短缺的图形用户界面(gui)开发的MATLAB用户驱动他们的算法。作为GUI构建工具箱团队的一员,我喜欢看到人们使用我们的工具将其技术的简单用户界面上。但是当我玩很多不同的gui,我意识到,他们中的很多人都非常静态:图窗口包含他们不能调整大小和对接,如果你试着调整他们,不好的事情发生。uicontrol撞击轴或从视图中完全消失。充分和扩大gui屏幕大小只不过给了很多空的灰色空间。

现在,MATLAB不提供布局管理工具的Java或. net,但有一个简单的方法来设计你的gui和规模的大小图窗口。保持你的花样几uipanels和归一化单位的形式,你可以在我上面提到的布局问题。对一个小的工作,你甚至可以将这些技巧应用到现有的gui。

为了证明我的观点,我将从MATLAB GUI non-resizable中部和改造。当我完成后,你将能够保持其可用性不仅当调整以适应你的屏幕,而且当对接成MATLAB桌面。GUI我将有一个非常酷的应用程序被称为charGUI Kailup棕褐色。charGUI说明了经过训练的神经网络可以识别手写的数字。是非常互动和有趣的玩,你可以下载它从MATLAB中央在这里。它看起来像这样:

唯一的问题是,像许多其他应用程序设计与MATLAB GUI元素保持相同的尺寸和相同的位置无论大小图窗口。打破债券的放之四海而皆准的GUI,我已经写了出版的m文件称为rearrangeCharGUI步骤将指导您完成的解构和重建的GUI,优雅地调整大小。查看所有详细的步骤,从MATLAB下载rearrangeCharGUI中央在这里。现在,我将向您介绍大步骤。

我想到的第一件事当铺设新的GUI分解图窗口的房地产成几个主要的条件。想想GUI看起来像从1000英尺。主要部分是什么?charGUI而言,最大的一块,我看到的是主要的轴输入图像的显示。我还看到一组uicontrol右侧。最后,我看到一群轴底部,用于显示图像处理结果(我将调用这些加工轴)。接下来我认为我可能会如何打破窗户为这些小区域,这样我就可以在他们单独工作。通过思考独立的GUI,较小的部分我自己缓解的复杂性考虑整个GUI的所有时间,这使得我的生活变得更加容易。

所以我认为工具是什么在我处理分解GUI。如果我写的代码在Java中,我可能会想使用BorderLayout。如果我在XAML标记我的GUI,我可能会考虑一个DockPanel。但我在MATLAB工作,因为我有这个很酷的图像处理的代码,我想跑,我要想在MATLAB !在MATLAB中,我选择使用uipanels。uipanels是伟大的,因为他们可以在任何地方放置在图窗口(或在其他uipanels),因为使用uipanels会让我想到我的条件独立的GUI。

在rearrangeCharGUI,我创建三个uipanels:一个用于图像输入轴,一个uicontrol,,另一个用于加工轴。我位置的uipanels图窗口使用归一化单元,这将允许uipanels规模与图窗口大小的变化。如果你从来没有使用标准化的单位,它很简单。uipanel上的单位是一个属性(以及其他所有处理图形对象)紧密合作的位置属性。通过设置单位“正常化”,我选择位置uipanels相对于包含图窗口使用的百分比图窗口的位置。

例如,考虑将包含的uipanel uicontrol。在rearrangeCharGUI,我图的位置在右边窗口中,占据25%的水平空间和垂直空间的100%。不论我怎么增长或缩小图窗口,uipanel总是占据右边从上到下季度图窗口。我使用一个类似的策略,其他两个uipanels。

一旦我图窗口分割成更容易管理的部分,我可以考虑每个三uipanels以及我想位置对象里面。首先,我把输入图像轴在我第一次uipanel。通过设置坐标轴的单位“规范化”,我可以使轴相对于包含uipanel增长和收缩:随着uipanel的增长,所以轴。这就像三uipanels规范化工作单位,我放置在图中。

其次,我第二uipanel uicontrol内部位置。而是改变单位的“规范化”,我把它们作为“字符”。这样做意味着我uicontrol的立场是绝对的:他们不会相对于uipanel增长和收缩。我这样做,因为如果图窗口增长很大,我真的不想看到大uicontrol。最后,我第三uipanel位置加工轴内部。我再次使用归一化单位。这是好的,因为如果我有一个大的显示器,我可以扩大我的图窗口,看到更详细的图像处理步骤。后快速补妆,我的新可调整大小的GUI是准备好了!

当然,所有这种编程是对喜欢的人很多,但如果你是用来创建gui向导吗?别担心!同样的技术可以应用在指南!uipanel的gui对象,您可以使用在你的指南。所以继续放一些到您自己的应用程序!使用属性检查器来改变你的单位属性uipanels“正常化”。你可以打开属性检查器,只需双击任何uipanel你放置在GUI或通过右击并选择“属性检查器”。做同样的其他对象,你想自动调整。试一试。您将创建可调整大小的gui在没有时间!

在我走之前,我将留给你一个挑战。我们怎样才能使rearrangeCharGUI更好?我开始你的想法。您可能还记得,uicontrol右边的GUI不调整动态图窗口,但包含他们的uipanel总是占据了四分之一的水平空间。所以随着数字的增长,我们有越来越多的浪费空间uicontrol的右边。你能想到一种方法,也许使用图的ResizeFcn财产,让这个uipanel以恒定宽度,同时还让其他两个uipanels动态调整?留下你的评论,或者更好的是,把你的代码MATLAB中央!


——布莱恩•科迪MathWorks

|
  • 打印
  • 发送电子邮件

评论

留下你的评论,请点击在这里MathWorks账户登录或创建一个新的。