图片缩略图

GUI布局工具箱

2.3.5版本(870 KB) 大卫·桑普森
MATLAB图形用户界面的布局管理器
4所示。9
202年评级

980下载

更新2020年10月29日

视图版本历史

查看许可协议

编者按:受欢迎的文件2017年2018年

这个文件被选为MATLAB中央选择的

这个工具箱提供了工具来创建复杂的MATLAB图形用户界面调整优雅。提供的类可用于组合产生任何用户界面布局。

*安排MATLAB用户界面组件水平,垂直或网格
*混合固定和适应组件
*调整组件交互通过拖动分隔器
*使用标签和面板显示和隐藏组件
*显示滚动面板中的大型组件的一部分

这个工具箱是由大卫·桑普森和本Tordoff(咨询服务)(//www.tianjin-qmedu.com/services/consulting/在MathWorks)组。

这个版本是MATLAB R2014b后来。R2014a和早些时候看到(版本1)(//www.tianjin-qmedu.com/matlabcentral/fileexchange/27758-gui-layout-toolbox)。

引用作为

大卫·桑普森(2021)。GUI布局工具箱(//www.tianjin-qmedu.com/matlabcentral/fileexchange/47982-gui-layout-toolbox), MATLAB中央文件交换。检索

评论和评级(621年)

Samiu Haque

大卫·桑普森

塞巴斯蒂安,谢谢你的反馈。我们正在提供一个不兼容列表。GLT使用uicontrol——* Flex容器的容器,BoxPanel, ? ? ?——在实施目前在uifigures失败。我们(不是我)将在适当的时候提供uicontrol兼容性,这样你就可以做f = uifigure, c = uicontrol(“父”,f)。还有一些美容问题* Flex容器,虽然基本上鼠标交互工作。我们已经测试R2021a,昨日公布的报告比归一化单位uifigures完全并正确地执行。

你好,伟大的工具箱。我发现的另一个不兼容uifigure(测试R2018b和R2020b)和uix。HBoxFlex(见下文)。你继续不兼容的列表吗?

h。无花果= uifigure;
h。box_main = uix。VBox('Parent', h.fig);

h。pan_1 = uix。面板('Parent', h.box_main, 'Title', 'Panel1');
h。box_1 = uix。HBoxFlex('Parent', h.box_main); % this does not work. If use uix.HBox, it works.
h。pan_2 = uix。面板('Parent', h.box_main, 'Title', 'Panel2');

Hoo小便

大卫·桑普森

琼娜,这是一个工具箱,而不是一个应用程序。见附件>管理插件。

琼娜布里托

我安装了,但不能访问工具箱。它不会出现在应用程序面板。我用MATLAB R2020a

Gatwech释

@David,大大赞赏工具箱上的更新。将以下。

hagege鲁本

大卫·桑普森

进一步我的帖子今天早些时候,我最近发现了一个错误在R2020b uifigure规范化单位(和)早些时候当窗口显示比例是不统一的。我与同事合作开发,评估是否可以通过MATLAB固定产品更新。是不可行的代码的问题。

这种Cihan

大卫·桑普森

Gatwech,圣诞快乐!虽然是一个新版本的MATLAB位杂货店在圣诞树下,进一步的工作是需要GUI布局工具箱。不过我可以分享一个更新最新进展。在2020年第四季度,我们重构测试套件支持添加uifigure-parented容器。万博1manbetx我们也开发环境从SVN Git(实验室),这本身就是一项重要的任务——特别是迁移问题和重建我们的multi-release测试能力。现在我们是一个很好的基础对uifigure资格,并进行更改而不破坏Java兼容性。分别TabGroup我们开始工作,但进展并不如他们想象的那么快。我们会得到回这个1月。最后但并非最不重要,我一直在关注消除内部依赖旧的和不支持的文档工具。万博1manbetx我希望我们将搬到生活的脚本和/或减价的文档编辑环境。

这种Cihan

谢谢你这修复和支持。万博1manbetx

Gatwech释

Gatwech释

非常感谢你大卫。像亚尼克,我一直每天来访的这篇文章,希望能有一个圣诞礼物的UIFigure工具箱。我希望你仍然计划在今年年底之前发布。伟大的工作!

大卫·桑普森

今天,我们发布了一个新版本与uix解决一个问题。面板和uix。BoxPanelin R2020b, plus some minor fixes to uix.ScrollingPanel.

我们已经从光秃秃的Subversion Git GitLab开发自上次发布。请让我们知道如果你发现任何问题与释放。

从uix工作继续删除图片。TabPaneland assessing readiness for use with uifigure. Both are planned for this year.

大卫·桑普森

亚尼克,我们正在更新我们的测试套件资格GUI布局与uifigures工具箱使用不同的版本。交互式测试表明,许多事情在R2020b工作。看这个空间。

亚尼克Ducret

谢谢你大卫,我们把所有我们的代码2020 b已经我们早该版本的一步,所以我的问题是你是否打算释放UIFigure版本工具箱的2020 b或仍在等待未来Matlab更新

神灵omidi

完成,谢谢。

神灵omidi

你好,我怎么能退的控制空网格区域的地面颜色,女巫是用“uix。空”?我想把两个标志和空网格的一个小测试。我应该改变我的方法吗?
谢谢

大卫·桑普森

亚尼克,我们正在采取的方法是确保相同的工具箱为图或uifigure工作正常。现在R2020b已经发布,我们将再次检查什么,不工作。最后问题是uicontrol可拖放支持(目前实验)和一些问题分规。万博1manbetx最终我想发布一个表关于什么和不使用不同版本,就我所知,这不是简单使用最新版本。然而,我们无法解决uifigure限制在之前的版本中,像补丁深的产品代码块。

亚尼克Ducret

你好大卫,UIfigure计划上的任何更新版本的工具箱?GridLayout仍远未能够取代GUILayout ?

再次感谢你的工具箱!

大卫·桑普森

维罗妮卡,做了一些侦探工作,怀疑你的评论与“EasyGUI”。//www.tianjin-qmedu.com/matlabcentral/fileexchange/22936-easygui

维罗妮卡人告诉

你好!当我试着运行“autodemo”,我得到了另一个用户的同样的错误:
“错误使用matlab.ui.container.Panel /组
没有widthlimits属性面板上类。”

马克Shein

songyao杨

这比任何书籍

大卫·桑普森

艾伯特,什么是错误,表明您的应用程序无法找到GUI布局工具箱?

艾伯特Piersson

我用matlab 2019 a。我安装了GUI工具箱。在matlab上提示,当我类型版本,它显示了安装,但是我需要打开的程序说,这不是安装。任何想法吗?

内森埃林森

伟大的工具箱!发现一个小错误:uix.Divider / isMouseOver

我得到这个错误只在我的一些数据,这错误只是一个烦恼:
警告:发生错误而执行侦听器回调事件类matlab.ui.Figure WindowMousePress定义:
操作数的| |和& &操作符必须转换逻辑标量值。

在uix错误。分频器/isMouseOver (line 261)
特遣部队(ii) =特遣部队(ii) & & obj (ii)。控制= = eventData.HitObject;

它是由eventData引起的。HitObject是空的。不知道为什么会这样。

拉尔斯

@Laura:谢谢!我BetterSnapTool用于窗口管理和禁用它Matlab解决这个问题。

劳拉·邓普西

你好拉斯,谢谢你使用MATLAB在macOS莫哈韦报告你的经验。你听起来类似于这篇文章描述的MATLAB的答案://www.tianjin-qmedu.com/matlabcentral/answers/422244-why-do-buttons-apps-or-the-editor-in-matlab-respond-slowly-or-hang-on-macos。页面提供了一些建议解决方案。频繁,这个问题似乎是由于A11Y工具或窗口管理程序等macOS磁铁或BetterTouchTool。

大卫说,TG, MathWorks支持团队已经准备好帮助如果你需要进一万博1manbetx步的帮助。//www.tianjin-qmedu.com/万博1manbetxsupport/contact_us.html

拉尔斯

神奇的工具箱!在windows上……我不能让它正常工作在Mac OS(10.14,莫哈韦)与Matlab 2019 b。任何交互图极慢或结果的Matlab纺车变得反应迟钝。

甚至简单的例子表明这种行为和分析器不提供任何明确的提示(对我来说)。

h_f =图;
h_hbox = uix。HBox('parent', h_f);
uix。空(“父”,h_hbox);
h_c = uicontainer(“父”,h_hbox);
h_axes =轴(h_c);
山峰;

我使用默认Matlab Java和没有JDK安装系统范围。

感谢任何帮助!

大卫·桑普森

TG,请联系MathWorks支持,世卫组织将帮助您诊断问万博1manbetx题。

TG

我可以4.2的代码:最小化和最大化。这正是我需要的。GUI呈现,我崩溃的一个窗口,然后我与光标转轮MATLAB冻结,直到我辞职MATLAB。我在OSX。我很失望,因为这正是我需要的,但我也不知道是什么错误如何如何得到这个在我的电脑正常工作

迈克尔剑

你好大卫,谢谢你这奇妙的工具箱。然而,我有问题编译应用程序从这个工具箱使用matlab编译器创建的。当我试图添加应用程序中的“资源”目录编译器应用程序,它显示了“以下MATLAB文件没有添加,因为他们不能读:\ GUI布局工具箱2.3.4 \ \ + uix \布局资源”。我可以添加*。png文件在这个目录,但编译后的应用程序不能运行,因为它找不到这些png。你有什么建议或任何一个遇到这个错误之前吗?非常感谢你提前。

马克对于

嗨,大卫,你有和R2014a使用的版本吗?使用这个工具箱上有冲突在我R2014a版本。谢谢。

大卫·桑普森

哦,一个罕见的痛苦4的5。选项卡标题形状很2009年的事情。认真想想,如果你不需要禁用标签的能力,请使用uitab和uitabgroup时不可用工具箱创建GUI布局。

acdyf acdyf

OMG,为什么让tabheader这样一个奇怪的形状? ? ? ? > _ < ? ? ? ?

CHIFU日元

yUYLONG年代

这是很好的工具

大卫·桑普森

安德鲁,我添加了tbx \ layoutdoc路径,然后准备helptoc。xml和信息。xml工具箱的船。在这种情况下,helptoc。xml是由一个内部生成工具。你也可以看一看:https://blogs.mathworks.com/developer/2017/01/13/matlab-toolbox-best-practices/

大卫·桑普森

安德鲁,谢谢你的CSS修正!

大卫·桑普森

亚历山大,谢谢你的建议。现在,我只是提供基本的钩子,让用户定义的行为。你可以优先顺序添加到用户数据的内容。

安德鲁Janke

这就跟你问声好!你愿意分享这个项目的源代码,包括.prj文件和任何你使用的构建脚本包工具箱?我想包我自己的工具箱,很难获得其HTML帮助文件出现在Matlab文件浏览器窗口。我想看看你在做什么使用作为参考。

安德鲁Janke

你的医生。css文件“单元格边距”和“单元格间距”属性表中。propertytable定义。我不认为这些是有效的CSS属性。也许你需要”表。propertytable td{填充:4 px}”呢?

实验后戈德法布

你好,
我有问题关于工具箱。
当使用“插入Colorbar”轴的大小变化显著,成为非常小(虽然Colorbar很大)。
“旋转3 d”也改变了轴与旋转角度大小和打开一个面板“Az”和“El”。
提前感谢任何输入。

亚历山大·科尔曼

对接/解锁功能,这将是伟大的能力有面板回归原来的顺序。在对接的例子中,如果你2然后redock驶离码头面板,面板的新秩序是1,3,2。也许“优先级”或“秩序”属性面板可以确定它们是如何订购时再次停靠吗?

朱利安·兰格

你好大卫,谢谢你的回应。是的,一个侦听器轴可能是一个解决方案,我将试试。不,每个轴的处理创建类“DataAxes”这类继承自WidgetContainer(小部件工具箱)。所以创建由:uix。VBox(for Channel axes Box and Result axes Box) > uix.VBox (for different channels) > uix.HBox (for popup menu left and axes widget right) > uix.Panel > axes (I didn't moved the axes inside a uicontainer because this gave me way too much space between axes and panel borders).
但使用这种方法的另一个问题发生:当我创建的所有内盒和小部件,最后一步是安排VBox的高度(1为在VBox通道和一个固定的大小为120的HBox结果轴)。当我重新排列大小、高度轴resultAxes在面板的大幅萎缩,尽管会有足够的空间在这个面板更好地重新排列轴的限制——或者更糟(当窗口全屏):resultAxes的不情愿地填满整个空间面板的位置(OuterPosition =不碰ActivePositionProperty…)

所有我想要的是一个坚实的方式相互轴(渠道和结果)下,得到最大的面板不改变轴内的显示区域大小(尤其是宽度)当添加/删除轴标签、标题、蜱虫等有更好的解决方案创建比把它们在一起就像我上面提到的?

大卫·桑普森

Arrale,你能直接与MATLAB版本,请与我联系GLT版本,和简单的复制步骤,让我们来诊断这个问题呢?

大卫·桑普森

朱利安,好问题。听起来你需要一个事件在ScrollingPanel表明当窗口宽度变化时,或者当滚动条dis /出现。作为一项短期措施,你可以听的(非法)SizeChanged事件ScrollingPanel轴。你是使用次要情节布局ScrollingPanel轴?GLT不做次要情节,还有一些技术上的限制,阻止我改进它。

Arrale

我有一个问题使用这个工具箱。当我第一次运行这个程序,它需要大约12年代,当我再次运行它时,它需要不到1 s,当我清楚我所有的工作区首先,需要12个年代了。为什么和如何解决呢?

朱利安·兰格

你好大卫,

我目前使用工具箱创建oop-based应用程序中我细分不同的视图(基于部件工具箱应用例子)。我创建一个视图部分几个数据分析轴下彼此,底部有一个“结果”的轴。所有轴必须相同的宽度,这样彼此可以比较正确的内容。数据轴的高度不得低于一个固定大小(150像素),所以我创建了数据轴ScrollingPanel > VBox。当没有足够的空间在图窗口中,滚动条的ScrollingPanel变得可见,人们很容易滚动面板。好了。但当滚动条变得可见,数据轴在面板的宽度缩小,所以不同于结果的宽度轴,必须低于滚动面板因为它应该是一个总是可见部分。有办法调整轴的ScrollingPanel相同宽度的数据内轴ScrollPanel吗?
SizeChangedFcn我已经试过,但是这也为其他面板尺寸火灾(没有ScrollingPanels)时,给了我坏的结果就比较轴的位置,ScrollingPanel外。通常轴外就变成了图太大了,让人难以琢磨……我希望这个问题变得清晰。
谢谢!

亚历山大·陈

辉煌的提交!

我走进一个不寻常的问题,当我使用任何类型的BoxFlex,和选项卡按钮被按下,父图不触发WindowKeyPress事件了,直到孩子图形对象图是由鼠标点击选择。这意味着主要的图由于选项卡控件失去焦点,这有点预期如果我们监听键盘事件,但WindowKeyPress事件也失去了。我怀疑选项卡控制聚焦一个元素并不是主窗口的孩子(或以某种方式隐藏)。这并不会出现在non-flex盒子。这不是太大的问题,我可以避免使用“选项卡”作为一个键盘快捷键,但是要理解发生了什么。

干杯!

Mengchen

好的内容!

大卫·桑普森

Kaveh,请看GUI布局工具箱文档,第六节“部署GUI使用MATLAB编译器”。您必须显式地包含+ uix包内的“资源”文件夹。

Kaveh Rajabi

感谢桑普森先生为开发这个神奇的工具。
我有一个问题当我试着为我的一个gui,创建一个可执行文件,我使用这个工具箱元素。
看来,MATLAB编译器不支持这个工具箱的图形元素,如果我没弄错了。万博1manbetx有解决这个问题吗?

大卫·桑普森

托马斯,这个包是一个MATLAB工具箱。你可以使用常规的web浏览器下载并安装它。你也可以通过插件>在MATLAB将来发布附加组件。

关于工具箱的更多信息,请参阅://www.tianjin-qmedu.com/help/matlab/matlab_prog/create-and-share-custom-matlab-toolboxes.html

托马斯·克雷默

嗨,大卫,你好,
我想安装这个工具箱是一个错误的解决方案在处理GUI相关功能。然而,我为此道歉“新手”的问题,但我无法弄清楚如何安装工具箱。这应该是一个应用程序吗?或一个插件吗?我不能看到任何安装包内的函数。
再次抱歉,任何帮助将不胜感激!
谢谢

Hasun汗

大卫·桑普森

帕特里克,谢谢你的反馈在滚动条。并JScrollBar提供优越的功能,外观,或者两者兼有,相比uicontrol(“风格”、“滑块”)?

有关,我一直看着uix如何。ScrollingPanel uifigures可以实现。不幸的是没有MATLAB滚动条组件提供和嵌入一个基于java的滚动条不能工作。uihtml也许会开放更多的可能性。

帕特里克Legler

你好大卫,伟大的工具箱。
我有一个问题。我用你的工具箱结合部件工具箱。uiw.widget。树似乎使用javax.swing。JScrollBar scroolbar。你的uix。ScrollingPanel似乎使用uicontrol(“风格”、“滑块”)作为滚动条。有没有可能chnage uix的滚动条。ScrollingPanel javax.swing.JScrollBar吗?
BR

这种Cihan

好的。
谢谢你的反馈。

大卫·桑普森

Cihan,不支持,但是是一个公平的要万博1manbetx求。

这种Cihan

如何设置一个最大高度HBox吗?

克里斯

@Jordan史密斯,我不知道你的问题是解决了,但我也有过类似。不管出于什么原因,当我嵌套在另一个VBox轴本身,它固定我的问题(数据提示,但不是彩条。仍然混乱)。

画了

一帆高

马克

大卫·桑普森

宿州农村,waitforbuttonpress的行为并不依赖图的内容。

我不认识到函数名waitforbuttonmove waitforbuttonup。

大卫·桑普森

宿州农村,见第5部分“使用gui布局内部指南”的文档。你添加占位符面板图形指导,然后以编程方式添加GUI工具箱布局容器及其内容。

克里斯

宿州农村汉族

亲爱的大卫,
当我使用布局将轴的轴,因为父母不是一个图,我怎么能使用交互式功能像getcurrentPoint, waitforbuttonpress, waitforbuttonmove, waitforbuttonup ? ? ? ?

Z刘

宿州农村汉族

嗨,大卫
使用gui布局内部指南,如何添加元素的布局? ? ? ?

亚当

达尼

戳。uix.TabGroup PNG-free版本?

大卫·桑普森

乔丹,你需要XLimMode设置为“手动”?(设置XLim应该这么做,但其他后续操作可能把它回到“汽车”。)

约旦史密斯

你好大卫,这个包是太棒了!我遇到一个问题,如果我有一个轴放置在VBox,我想阻止轴尺度改变后把轴上的一个元素,如标记在一个特定的X和Y坐标。称“轴”函数来重新调节轴原来限制只适用于y轴,轴仍在新限制。我看了看修改DataAspectRatio,但是,只有搞砸了uix.Panel轴的调整功能。我想保持限制轴固定,这样我就可以用鼠标拖动标记在轴回调(s)。任何反馈维护X限制将不胜感激!

大卫·桑普森

你的事迹,请分享一个简单的例子,通过这些评论与GLT社区,或与我直接通过“联系作者”按钮。

你的事迹Volvoikar

谢谢大卫,我们写过的代码,做的就是孩子,我的问题是,当我们出坞的图数据自动洗牌留下空白面板结束时,我想知道如果我们能阻止这种洗牌和保留出坞前的位置数据。

大卫·桑普森

你的事迹,你需要(可以)代码码头/出坞自己行为。具体来说,码头代码应该相应两个孩子,这让孩子的内容——然后重新排序的内容。

你的事迹Volvoikar

我试着码头的例子/驶离码头面板按照文档,
我看到面板的位置变化对接图时,是否有办法保留原来的位置?

大卫·桑普森

哎哟,2星。

Florian Kroetz

uix。BoxPanel不支持次要情节。万博1manbetx
解决方案:使用uipanel uix.BoxPanel内。

亚当

甄梁

大卫·桑普森

第四,我们不支持在GLT不万博1manbetx分大小写或截断属性匹配。

lv这里

一个了不起的工具!非常有用!
我发现这里是一个小问题:它无法识别“父”在下面的代码中,你必须大写第一个字母作为“家长”代码的结果正确。
> > f =图();
> > b = uiextras。VBox( 'parent', f );
> > b1 = uiextras.HBox(“父”,b);
> > b2 = uiextras.HBox(“父”,b);
> > uicontrol(“父”,b1,“背景”,“r”)
> > uicontrol(“父”,b2,“背景”,“b”)
实际上,它肯定是一个坏习惯写PropertyName小写。但它也可以在MATLAB使用时工作。和真的很难解决这个奇怪的错误当你不注意到它。

拉法桑切斯

Scofieldgzf

Kai Lehmkuhler

好的,谢谢你的信息。可能值得添加到帮助。然而,捕捉崩溃和显示一个友好警告会感谢。伟大的工具箱。

大卫·桑普森

凯,请看到我的评论日期为2018年10月6日,地址这个话题。

Kai Lehmkuhler

在保存一个布局图.fig文件并重新加载它,Matlab崩溃和必须关闭。

警告:当加载一个类的对象“听众”:
没有构造函数”事件。侦听器的匹配签名。
> matlab.graphics.internal.figfile.FigFile /阅读(31行)
在matlab.graphics.internal.figfile.FigFile
在loadFigure(31行)
在openfig > localOpenFigure(第69行)
在openfig(40行)
在开放(第141行)
在uiopen(第167行)
警告:在负载:
一个无效的预设加载时被检测到
event.listener异构数组的类。一个空数组的类
事件。侦听器将返回。
> matlab.graphics.internal.figfile.FigFile /阅读(31行)
在matlab.graphics.internal.figfile.FigFile
在loadFigure(31行)
在openfig > localOpenFigure(第69行)
在openfig(40行)
在开放(第141行)
在uiopen(第167行)

大卫·桑普森

Patta,谢谢你让我注意这个问题。右击,右边的HitObject单击竟然是空的。以下uix变化。分频器/isMouseOver is required:

特遣部队(ii) =特遣部队(ii) & & ~ isempty (eventData。HitObject) & & obj (ii)。控制= = eventData.HitObject;

patta

patta

奇怪的事情发生在评论,我的第一个消失了。

再次:

有一个问题在使用HBoxFlex可见分配器和drawpolygon从图像处理工具箱时使用鼠标右键完成ROI。

代码:

hb = uix。HBoxFlex('Parent', figure()); axes('Parent', hb); axes('Parent', hb);
显示亮度图像(rand (64、64));
drawpolygon

错误是

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
警告:错误发生在执行侦听器回调事件WindowMousePress定义类
matlab.ui.Figure:
操作数的| |和& &操作符必须转换逻辑标量值。

在uix错误。分频器/isMouseOver (line 261)
特遣部队(ii) =特遣部队(ii) & & obj (ii)。控制= = eventData.HitObject;

在uix错误。HBoxFlex/onMousePress (line 103)
loc =找到(obj.ColumnDividers。isMouseOver (eventData));

错误在uix.HBoxFlex > @(变长度输入宗量)obj.onMousePress(变长度输入宗量{:})(第307行)
WindowMousePress, @obj。onMousePress);

错误uiwait(第81行)
等待(hFigDlg“WaitStatus”,“不活跃”);

错误images.roi.internal.ROI /画

错误drawpolygon(第174行)
h.draw;
在uiwait >(第81行)
在images.roi.internal.ROI /画
在drawpolygon(第174行)
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

然而,drawpolygon返回一个ROI看起来正确的乍一看。不过,我想它的一个缺陷。

Matlab版本是“9.6.0.1099231 (R2019a)更新1 ',工具箱版本是最新的几分钟前安装。

感谢非常有用的软件!

patta

我忘记了:

版本:9.6.0.1099231 (R2019a)更新1

工具箱最新版本,安装的几分钟前。

大卫·桑普森

通,请看看GUI工具箱文档布局,第六节“部署GUI使用MATLAB编译器”。您必须显式地包含+ uix包内的“资源”文件夹。

建成

你好大卫,
当我启动应用程序生成的“MATLAB编译器”我总是得到错误信息:
使用uix错误。loadIcon(line 34)
无效的默认值属性“DividerMask”类“uix.TabPanel”:
无法打开文件“tab_NoEdge_NotSelected.png”。
在uix错误。TabPanel/getDividerMask (line 902)
错误viewMain / createGui(第62行)
错误viewMain(45)行
主要误差(2行)

但奇怪的是主要的文件可以成功发射MATLAB中没有任何错误或警告。

提前感谢你的反馈!

大卫·桑普森

Rakshan,这是一个任务,我们通常通过咨询支持,尽管放心把这看作是一种挑战!万博1manbetx大致需要检测按钮感兴趣的目标(s),然后跟踪和更新鼠标动作,然后释放按钮。

的主要挑战是:
(1)什么是目标——面板按钮标题、背景的面板,面板的内容吗?
(2)发明和实施合理的逻辑是什么,鼠标移动
(3)避免不必要的交互与flex面板分规——你确定你想要拖分规*和* reorderable板?

Rakshan库马尔

你好大卫,

我希望能够在uix洗牌箱板位置。通过拖拽面板Gridflex最好。请建议是否可以使用所提供的特性吗?

谢谢,
Rakshan

Vyshakh光伏

大卫·桑普森

安德烈亚斯,TabPanel遵循其他GLT容器的编程模型。添加内容,设置TabPanel父母的孩子。订货内容、设置内容属性的排列。

的人一个提醒,请使用uitab uitabgroup除非你需要禁用这些选项卡,或编写代码,需要R2014b之前运行。

Andreas杜诺

如果我有一个TabPanel任意内容(我有面板和或表),我希望改变这一内容,我会怎么做呢?
addChild, removeChild和重新排序所有保护方法。

亚当

取决于你想投入多少努力。您可以创建一个定期与AppDesigner然后开始插入GUI布局以编程方式,就是所有的组件,但这可能是很多努力。与指南,你可以留一些空白面板AppDesigner和编程方式填满他们的肚子。但是你不能拖小部件从这个GUI工具箱在视觉设计师的部分。

必应严

可以在AppDesigner这项工作吗?

马修角落

|马修,我假定你想要的不仅仅是盲板,但滚动条槽,改变颜色面板的背景颜色。这是不可能改变滚动条的颜色按钮,滑块。

我想槽为默认。它包含滚动按钮,滑块,所以认为精美的保持灰色。

Geovany拉米雷斯

大卫,谢谢你的解释。解决方法是一个不错的选择。

Igor Varfolomeev

@Randy Souza,谢谢修复!

Igor Varfolomeev

@David桑普森,是的,新的zip完美的作品,谢谢!

大卫·桑普森

Geovany,你是对的,GLT容器不玩传奇和彩色的。也有技术上的原因,我们不能做得更好。有进一步讨论的文档,2.3节“彩色和传说”。

问题的解决方法是将轴uicontainer(或uipanel标题”),填补了GLT容器。

b = uix。BoxPanel( ... );
c = uicontainer(“父”,b,…);
一个=轴(“父”,c,…);
传奇(……)

Geovany拉米雷斯

传说与“uix.Panel”不兼容。这是一个最小的例子,情节消失后用“传奇”

f = uix。面板('Parent', figure);
axesH =轴(“父”,f);
plotH =情节(axesH 1:5,兰特(1、5));
传说

当然,我可以使用一个“uipanel”相反,但我使用许多uix感兴趣。*元素。

兰迪·苏扎

@Terry Brennan @Igor,我们固定空邮政问题和取代的zip包与一个正确的文件。为给您带来的不便道歉这引起。

大卫·桑普森

特里和伊戈尔,谢谢你,你是对的。我马上问文件交换团队得到到这个。

伊戈尔

@David桑普森“空邮政”的问题是不固定的。我刚下载的文件是36.8 kb和只包含0-size文件。

特里布伦南

我不知道邮政是固定的。我试图下载zip版本和所有的文件是空的。

大卫·桑普森

亲爱的zip文件的用户,现在丢失的优点的情况下解决。

GUI布局工具箱在mltbx格式上传,但文件交换程序产生一个等价的zip文件对于那些更喜欢这种格式。失去的程序有错误包文件夹名称的“+”。这个错误已经被修正了。

小君

问题解决了。

小君

当我启动我的应用程序使用GUI布局工具箱2.3.4版本,我总是得到错误信息:

使用uix错误。loadIcon(line 34)
无效的默认值属性“DividerMask”类“uix.TabPanel”:
无法打开文件“tab_NoEdge_NotSelected.png”。

在uix错误。TabPanel/getDividerMask (line 902)
面具。EF = indexColor (uix。loadIcon( 'tab_NoEdge_NotSelected.png' ) );

在FGECTorqueTool错误。TorqueTool(37)行
标签= uix。TabPanel( 'Parent', fig, 'Padding', 5 );

当第一次安装工具箱,它将正常工作。但是重启后MATLAB和启动应用程序,然后停止工作并显示错误消息。知道为什么导致这些错误吗?

大卫·桑普森

艾德里安,我有两个建议。第一个是李=侦听器(“XLim”, PostSet, @cb),其中一个是轴的兴趣。第二是使用m =变焦(f), m。ActionPostCallback = @cb, f是感兴趣的人物。

艾德里安·帕森斯

我有一个应用程序基于demoBrowser例子,我策划已经有一个箱子的数据。有办法捕捉当用户不断的放大和重绘标签在每个数据点的散点图,当用户已经足够放大。我想我需要添加一个回调函数,但是找不到合适的对象呢?

小君

感谢大卫的帮助。工具箱已经安装。

大卫·桑普森

小君,请下载“工具箱”(.mltbx)而不是“Zip”。MATLAB将内容提取到其“附加组件”区域,并将所需的文件夹添加到路径。

关于工具箱的更多信息,请参阅://www.tianjin-qmedu.com/help/matlab/matlab_prog/create-and-share-custom-matlab-toolboxes.html

小君

我有困难在安装这个工具。下载后的GUI工具箱2.3.4布局。邮政,我提取到文件夹matlab GUI工具箱2.3.4布局和这条路径添加到搜索路径,但matlab仍然找不到这个安装。命令版本没有显示这个工具箱已经安装。在安装这个工具箱的正确方法是什么?

亚当

只是添加评论,因为我也只是注意到丢失的问题+文件夹(一样当我还下载了部件工具箱)从zip文件。我们也总是使用zip文件达尼出于同样的原因,我们把所有的代码,包括第三方代码,在存储库中,这样我们可以从存储库中所有检出代码并运行它,而无需单独安装工具箱。我还没有看太多工具箱安装,但是我不知道这将是一个选择使用。

大卫·桑普森

Michala,错误表明您正在运行GUI布局工具箱1。x在MATLAB R2014b或更高版本。你需要GUI布局工具箱2。x,您可以从该页面下载。

MATLAB图形的变化从R2014a R2014b显著,是不可能创建一个GUI工具箱,将工作布局。用户(“你”)的代码应该工作1。x和2。x,除了特定的2中列出的项目。x文档,2.2节“兼容版本1”。

大卫·桑普森

埃里希,一个更新。解决简单的,下一个版本的问题将被解决。

大卫·桑普森

埃里克,你是对的。不幸的是,文档是使用旧的内部工具生成不再维护。我会看看我能做些什么。

亚伦常

埃里希

HTML文件的帮助在参考图像来源不一致的情况,导致一些图片不显示区分大小写的文件系统。

例如:在Getting_Started2。html页面的顶部有:
< td宽度=“36”背景= " # e4f0f8 " > < A HREF = " Getting_Started1。html " > < IMG SRC = " / leftarrow图像。png“边境= " 0 " ALT = "上一页" / > < / > < A HREF = " Getting_Started3。html " > < IMG SRC = " / rightarrow图像。png“边境= " 0 " ALT = "下一页" / > < / > < / td >
正确显示左右箭头,但底部的页面有:
< td宽度=“18”高度=“15”背景= " # e4f0f8 "对齐=“正确”> < a href = " Getting_Started3。html " > < img src = " / rightarrow图像。png“边境= " 0 " alt = "下一页" / > < / > < / td >
导致“形象失效链接”图标显示随着alt文本。

Michala Markova

嗨,伙计们,
我有兼容性问题。我已经成功地使用这个工具箱至少两年在这个主题上,Matlab 2016 a。现在我已经改变了Win10和Matlab 2018。自从我工具箱有问题之后,我安装了2016 (Win10)。仍然错误。

问题已经在开始用这个:
p =图(“单位”,“像素”,“OuterPosition”, (100 100 1000 800),…
“工具栏”、“没有”、“菜单”,“没有”、“名称”、“EMGAT16设置”);

b1 = uiextras。HBox('Parent', p, 'Spacing', 5);

2016年Matlab, win10错误的是:
使用uiextras错误。容器(第66行)
尝试运行使用、MATLAB图形对新的图形系统。请重新安装。

在Matlab 2018 b, Win10是不同的:
没有构造函数的处理。侦听器的匹配签名。
在uiextras错误。容器(line 95)

是什么错了吗?

大卫·桑普森

马修,我假定你想要的不仅仅是盲板,但滚动条槽,改变颜色面板的背景颜色。这是不可能改变滚动条的颜色按钮,滑块。

大卫·桑普森

马修,好叫,我将解决这个问题。

马修角落

你好大卫,

小与uix.ScrollingPanel视觉问题。当两个水平和垂直的滚动条显示,盲板的显示在右下角不匹配的背景颜色ScrollingPanel如我所期望的。例如如果我将背景设置为黑色,它仍然显示为默认灰色。

这使得gui的主要背景颜色不是默认相当的看起来有点奇怪。

代码复制:
图(f =“颜色”,[0 0 0])
scrl = uix。ScrollingPanel(“父”,f,写成BackgroundColor, [0 0 0])
vbox = uix。VBox('Parent', scrl, 'BackgroundColor', [0 0 0])
scrl。MinimumHeights = 2000;
scrl。MinimumWidths = 2000;

大卫·桑普森

Rakshan,你没有提供完整的复制步骤,然而,我有一些反馈。
1。copyobj是复制一个对象,不动它。你移动一个物体从一方到另一个通过设置它的父属性。
2。您可以创建面板——=轴的轴(“父”,p)——而不是创建gcf和移动它们——一个=轴();一个。父母= p。
3所示。如果你相应轴MATLAB将相应相应的传说。
4所示。看起来你已经知道这一点,但对于传说和彩色的轴,你需要把它们放在一个uipanel GLT容器,不能直接在GLT容器。

Rakshan库马尔

我使用GUI工具箱创建多个布局图uipanel uix.GridFlex内()。

然而,我无法设置图uipanel的子对象,并得到所有图对象复制到面板中,我需要做以下步骤

因为我= 1:numFigures
集(uiPanelFig(我),“标题”,得到(figureHandles(我),'名称'));
selectedFigAxes = findobj (figureHandles (i)、“类型”、“轴”);
figAxes = findobj (selectedFigAxes,“类型”,“轴”,“不是”,“标签”,“传奇”,“不是”,“标签”,“Colorbar”);
2 =长度(figAxes): 1: 1
legendAxes = figAxes .Legend (ii);
如果~ isempty (legendAxes)
copyobj ([legendAxes figAxes (ii)], uiPanelFig(我),“遗产”);
其他的
copyobj (figAxes uiPanelFig(我),“遗产”);
结束
结束
结束
copyobj()正在几乎22秒uiPanel某些数据被复制。请建议如果有任何替代解决相应uipanel图与它所有的对象。

大卫·桑普森

Batuhan版本(“布局”)就是你所需要的。

相关,我们将开始发布新功能R2019a检索工具箱依赖性。

Batuhan Yetisener

你好大卫,

无关的又一个新手问题关于你的惊人的工具箱!我目前想开发一个开源项目基于Matlab将来发布“GUI布局工具箱”创建菜单非常容易遗留数据。无论如何,首先我必须检查用户是否GUI工具箱安装布局,显然。

许可证(“测试”、“GUI布局工具箱”)会返回0,我相信是因为我需要使用工具箱的实际特性名称而不是这个名字被列为“版本”的命令。

我想学习这个名字是什么。或者你有其他的解决方案吗?万博 尤文图斯我没有想实现一些肮脏的解决方案获得所有许可名称使用“版本”,并检查名称“GUI布局工具箱”通过“isfield”或类似的功能。

请跟上伟大的工作。
非常感谢你,
Batuhan

大卫·桑普森

达尼,直到外汇问题是固定的,你安装更新mltbx,获取更新的代码从你的插件文件夹。

大卫·桑普森

你好丹尼,谢谢你的反馈在zip文件。确实有一个问题与外汇mltbx-to-zip转换器,和外汇的一个成员的团队正在解决。

相关的,我们有一些功能来编码和检索工具箱依赖性。

无关,谢谢PNG-free标签上的刺激!

达尼

你好大卫,
我们仍然使用邮政的原因是因为GUI布局工具箱是几个大型开发项目的一部分。我们都在一个源代码控制系统,每个人都应该检查出来整件事情包括所有必需的外部库如GLT。这就是为什么我们避免mltbx。
什么时候uix PNG-free版本。TabGroup来吗?
欢呼,
达尼

大卫·桑普森

Swaroop uix。面板positions its contents to fill the available space, less padding. If you set the contents position explicitly then it will be reset on the next uix.Panel resize. If you want a panel that does not reposition its contents then use uipanel. If you want to plug in your own resizer then use uipanel with SizeChangedFcn.

SWAROOP惠普

你好大卫,
我需要一些帮助在场上uix.panel内定位。我在场上的位置通过指定位置属性(x y w h),但它不是工作,在左上角表正在创建父组件。找到下面的代码。
我也想知道表的大小是根据不同的决议,如果是放在uix.Panel体内。万博 尤文图斯

f =图();
p1 = uix。面板( 'Parent',f);
RowName = {A, B, C, D, E, F, G, H,‘我’};
Data = 0 (9,1);
p2 =场上(“父”,p1,…
“单位”、“规范化”、“位置”,(0.2 - 0.55 0.45 - 0.38),……
“字形大小”,14日……
RowName‘RowName’,‘Columnname’,{“价值”},……
“数据”,数据,ColumnEditable, ~ [0],“RearrangeableColumns”,“上”);

大卫·桑普森

达尼,谢谢你发现这个问题。mltbx的zip文件是自动生成的文件,这似乎并不奏效。这个问题已经报告给开发团队文件交换。

出于兴趣,你为什么使用zip文件而不是mltbx文件?GLT2支万博1manbetx持R2014b起……介绍了相同的释放,mltbx文件。我没有期望任何GLT2用户使用zip文件。

达尼

在最新版本的ZIP文件夹uix, uiextras, mixin没有领先+(空间)所取代。

大卫·桑普森

米歇尔,一些想法。是的,我们想在MATLAB改善产品内支持布局管理,和uigridlayout是朝万博1manbetx这个方向迈出的一步。在这一领域新的发展需要时间和只是针对基于javascript的图形。客户采用的速度也会有所不同,因为大客户不立即采取新版本。我们还需要支持GUI布局的成千上万博1manbetx万的用户工具箱过渡顺利,我们有几个想法如何做到这一点。

米歇尔·奥罗Nobili

你好大卫,
我还没有安装了2018 b版本,但是我读过关于新对象uigridlayout (https://it.mathworks.com/help/matlab/ref/uigridlayout.html)。
它的功能似乎非常类似于您的工具箱。这是否意味着uifigure你要开发一个记录/ GUI工具箱功能布局的内部实现吗?

Takafumi Shiino

你好,我有一个问题与uix.Panel。
如果滚动面板的高度设置为1806或更多,不正确的空格将出现在面板。
你能帮我解决这个问题。
简单的代码演示了问题如下所示。

f1 =图(“单位”、“归一化”);%单位透明像素
sp1 = uix。ScrollingPanel(“父”,f1);
% p1 = uipanel(“父”,sp1);
p1 = uix。面板('Parent', sp1);
sp1。身高= 2000;
ViewAxes1 =轴(p1,“单位”,“像素”,“位置”,[1 1 200 200],“XTick”, [],“YTick”,[],“可见”,“上”,“颜色”,“k”);

奥利费尔法克斯

大卫,谢谢你的评论。我有另一个有趣的问题……我试图覆盖大量的轴,每个情节都可以有自己的桠溪清晰。我知道这个概念的作品(我以前见过),但我有困难的GUI布局工具箱使用Flex时调整。我有把斧头在VBox (HBoxFlex),迫使位置相等和“颜色”设置为“没有”。到目前还好,但是当我试着调整父HBoxFlex,所有轴复位回到垂直堆叠。我已经尝试把它们直接进入小组,但每个新轴覆盖前一个……有办法从堆栈调整所以我可以重新使用回调可能吗?另一种覆盖多个轴?谢谢!

大卫·桑普森

新版本2.3.4修复一个缺陷在R2018b起造成意想不到的重新排序的内容由于实现微妙的轴工具栏。

这里的问题是发现通过内部用于MathWorks,但是我没有收到任何客户的bug报告。我猜这意味着你们中的许多人还没有在R2018b。

大卫·桑普森

GUI布局工具箱现在最多的文件交换提交评论,如果你考虑v1和v2。谢谢你提供反馈的用户社区包括bug报告和增强请求,询问和回答问题。

大卫·桑普森

奥利,删除所有内容的GUI工具箱布局容器c,它是删除(c。内容)。在大多数情况下,c。内容和c。孩子们将包含相同的元素,所以删除(c。孩子)也会工作。(内容也显示HandleVisibility患儿,如allchild (c))。这是你唯一的选择对于uipanel和uicontainer,因为内容是一个GUI工具箱布局属性。

大卫·桑普森

,谢谢你的兴趣使用GUI布局与新MATLAB工具箱web图形。我认为你喜欢的一些新组件的外观已经在最近的版本中引入的。我最近做了一些进一步的工作,但不能承诺发布日期。这在技术上具有挑战性的任务!

大卫·桑普森

迪帕克,有一些讨论使用GUI布局工具箱结合指导GLT文档中。然而,正如亚当说,一旦你熟悉了程序化的工作流程,没有多大意义使用指南。

大卫·桑普森

罗兰,我认为你想要使用uix。CardPanelinside b2 to switch between Panel_one and Panel_two. You use set the Selection property of the CardPanel to switch -- c.Selection = 1 will show the first element of c.Contents, etc.

另外两个备注:
* uix。面板does provide a Selection property, like uix.CardPanel. However, I regret that choice, and may remove it in a future release. I think that uix.Panel should simply maximize its contents and not touch their visibility.
* uistack将导致对象被删除和添加到树,将GLT混为一谈。

奥利费尔法克斯

你好,我怎么能删除所有内容(盒)在一个面板?

将授予

任何状态更新对移植的使用与应用程序设计师?

亚当

fenix.d.0831

Stefan de Groot

亚当

有时我指导和混合的GUI布局工具箱通过简单地把一个占位用面板在我将比使用指南,在布局和其他组件的代码作为家长我想添加。它必须以编程方式完成,小组内如果您想要使用的布局对整个UI使用指南并没有太多的优势。

迪帕克panday

你好,
我为我的项目设计GUI使用指南。我想知道我怎样才能使用GUI工具箱内部指南吗?

罗兰Higler

你好大卫,

我在做一个GUI和嵌套叠板与tabgroups HBoxFlex VBoxFlex。
两板之间切换可能我设置的地质“可见”的开关面板。然而,这结果的选项卡切换panesl保持隐形。改变后的大小HBoxFlex再次出现。
你能帮我解决这个问题。

简单的代码演示了问题如下所示。
f =图;

b = uix。HBoxFlex( 'Parent', f );
b1 = uix。面板('Parent',b,'Title', 'b1');
b2 = uix。面板('Parent',b,'Title', 'b2');

% 1开关面板
Panel_one.c = uix。HBoxFlex( 'Parent',b2 );
Panel_one.c1 = uix.Panel(“父”,Panel_one。c, '标题',' c1-1 ');
Panel_one.c2 = uix.Panel(“父”,Panel_one。c, '标题',' c2-1 ');
Panel_one。e = uitabgroup(“父”,Panel_one。c2);
Panel_one.e Panel_one.e1 = uitab(“父”,“标题”,“e1-1”);
Panel_one.e Panel_one.e2 = uitab(“父”,“标题”,“e2-1”);

% 1开关面板
Panel_two.c = uix。HBoxFlex( 'Parent', b2 );
Panel_two.c1 = uix.Panel(“父”,Panel_two。c, '标题',' c1-2 ');
Panel_two.c2 = uix.Panel(“父”,Panel_two。c, '标题',' c2-2 ');
Panel_two。e = uitabgroup(“父”,Panel_two。c2);
Panel_two.e Panel_two.e1 = uitab(“父”,“标题”,“e1-2”);

暂停(1)
集(Panel_one.c,“可见”,“关闭”);
集(Panel_two.c,“可见”,“关闭”);
暂停(1)
集(Panel_one.c,“可见”,“上”);
uistack (Panel_one.c,“顶级”);
暂停(1)
集(Panel_one.c,“可见”,“关闭”);
集(Panel_two.c,“可见”,“关闭”);
暂停(1)
集(Panel_two.c,“可见”,“上”);
uistack (Panel_two.c,“顶级”);
暂停(1)
集(Panel_one.c,“可见”,“关闭”);
集(Panel_two.c,“可见”,“关闭”);
暂停(1)
集(Panel_one.c,“可见”,“上”);
uistack (Panel_one.c,“顶级”);

非常感谢
罗兰

他朱朱

卡洛斯Santacruz-Rosero

大卫·桑普森

埃迪,好的建议有一个属性来控制行和列为主。列为主仍将默认为兼容性。

埃迪

你好大卫,任何集成网格取向选择的机会,我给你什么?目前网格命令列的列时,它会很高兴有一个选项顺序逐行做准备。

当前网格命令(列的列)
1 3
2 4

行,行命令(可选)
1 2
3 4

行命令我目前的解决方法是改变电网252行。米
[iy,第九]= ind2sub ([r c],转置(1:n));

[ix, iy] = ind2sub ([c r],转置(1:n));

的大作

发现这个工具箱是几乎像发现JQuery在IE6的日子
它并没有涵盖所有内容,但它确实很好,这是面向对象!^ _ ^

为什么这不是matlab核心的一部分吗?

Hermann-Joseph

干得好,稳定和超级有用的gui布局灵活多变。

谢谢你这

问候

赫尔曼

大卫·桑普森

斯文,我有一些评论。你描述的代码显示您正在使用version 2.2.1。你所描述的问题,涉及到新R2018b“轴工具栏”。2.3.3版本中修复被释放,这是最新版本。

打一个断点,你没有设置是可能的如果你有dbstop如果所有错误,或在<文件名> dbstop如果所有错误,或类似的。

昨天我通知R2018b的另一个问题,轴的顺序在内容可以是不正确的。我们正在调查。如果你遇到这个错误请在这里通过上面作者链接或直接联系我。

斯文

大卫:也许它已经解决了本月在你所做的东西然而这是另一个可复制的奇怪的行为可能与底层轴对象的变化在2018年b:

f =图();
g = uix。GridFlex( 'Parent', f, 'Spacing', 5 );
轴(“父”,g)

上面的代码在2018年,一个运行良好。
没有错误抛出但在2018 b停止网格内的代码。258行,好像一个断点是(不是)放置在那里的。行读取”的孩子。单位=“像素”;“

解决方法是在uicontainer包装轴对象:

f =图();
g = uix。GridFlex( 'Parent', f, 'Spacing', 5 );
轴(“父”,uicontainer(“父”,g))

马修角落

谢谢大卫。

大卫·桑普森

马特,我发现和解决了这个问题,并将包括在本月发布。

马修角落

大卫,复制下面的代码。
- - - - - - - - - - - - - - - - - -
%车行为
f1 =图(“单位”、“归一化”);%单位透明像素
sp1 = uix。ScrollingPanel(“父”,f1);
t1 = uicontrol(“父”,sp1,…
“风格”,“文本”,…
“弦”、“不能滚动mousewheel的);
sp1。身高= 1000;

%的预期行为
f2 =图;
sp2 = uix。ScrollingPanel(“父”,f2);
t2 = uicontrol(“父”,sp2,…
“风格”,“文本”,…
“弦”、“可以滚动mousewheel”);
sp2。身高= 1000;

大卫·桑普森

马特,你能分享简单的复制步骤,这里或者通过电子邮件吗?

马修角落

大卫,

使用uix。ScrollingPanel在最近的项目和有问题mousewheel滚动不工作。似乎发生在父图单位不是像素。使用2017 b。

问候,
马特

Vasil Stoimenov

我安装了GUI布局工具箱2.3。mltbx工作。

Vasil Stoimenov

大家好!

我新matlab和我试图运行一个脚本目前我还新。

我有以下错误:未定义的变量“uix”或类“uix.HBox”。

你能帮助我,是我包安装不当或一些Matlab不支持“uix”?万博1manbetx

欢呼,
Vasil

yubin余

大卫·桑普森

科比,你报道的问题介绍了GUI布局工具箱2.3.3版本。至少这就是我测试R2018b不同版本的显示。如果有人正在经历早期版本的问题GUI布局工具箱然后请,这样我可以扩大搜索空间。

大卫·桑普森

感谢科比那些最小的复制步骤。现在我们——包括MATLAB图形团队可以调查。

科比

大卫,我通过片段通过电子邮件发送,但我想在这里也分享:

跳频=图();
vb = uix。VBox('Parent', fh);
ax =轴(“父”,跳频);
斧子。父母= vb;

错误发生在移动节点之间的画布

大卫·桑普森

uix。BoxPanel继承自uipanel是财产的所有者“TitlePosition”。目前BoxPanel忽略了这个属性值,总是吸引了顶部的标题框和标题框的左边。我可以让BoxPanel荣誉TitlePosition和创造了一个增强请求。这不是一个微不足道的变化。

大卫·巴里

大卫,

我想中心在uix标题字符串。BoxPaneland noticed the TitlePosition property but changing this property doesn't seem to do anything.

1)有一种我可以中心标题字符串?
2)TitlePosition属性是什么意思?

问候
大卫

大卫·桑普森

科比,请通过我的文件交换配置文件复制步骤,使调查。

科比

我看到一个问题在MATLAB R2018a相应刚刚创建的任何轴。

“画布”之间移动节点时发生错误

有一种简单的解决方案再次尝试失败后的第一次暂停后(或可能drawnow,虽然我还没试过)。

大卫·桑普森

最新的更新修复一个缺陷,影响用户的MATLAB R2018b。

大卫·桑普森

Hooman,这个问题涉及到新的R2018b“轴工具栏”。我将尽快修复。

Hooman Sedghamiz

我非常感谢你的辛勤工作。我已经释放了一个信号处理工具箱,使用可视化GUI布局工具箱。然而,我们的一个用户报告了一个错误,似乎与你的工具箱。我很感激如果你可以解决或解释它,看看它可能得到解决。

错误报告:
操作系统和Matlab版本:Matlab 2018 b在Linux (Ubuntu 18.04)。

错误报告:
警告:发生错误而执行侦听器回调事件类uix.ChildObserver ChildAdded定义:
无法识别的属性“单位”类“matlab.ui.controls.ToolbarStateButton”。

在uix错误。setPosition(line 13)
o。单位= u;

在uix错误。面板/redraw (line 56)
uix。集Position( obj.Contents_(selection), position, 'pixels' )

错误uix.mixin.Container /组。脏(第132行)
现在obj.redraw() %重绘

在uix.mixin错误。容器/addChild (line 222)
obj。脏= true;

在uix.mixin错误。面板/addChild (line 88)
addChild@uix.mixin。容器( obj, child )

在uix.mixin错误。容器/onChildAdded (line 162)
obj。addChild (eventData。孩子)

错误在uix.mixin.Container > @(变长度输入宗量)obj.onChildAdded(变长度输入宗量{:})(51)行
childObserver ChildAdded, @obj。onChildAdded);

在uix错误。ChildObserver/addChild (line 109)
通知(obj ChildAdded, uix。ChildEvent (oChild))

在uix错误。ChildObserver/addChild (line 116)
obj。addChild (nChild oGrandchildren (ii))

在uix错误。ChildObserver/addChild (line 116)
obj。addChild (nChild oGrandchildren (ii))

在uix错误。ChildObserver/addChild (line 116)
obj。addChild (nChild oGrandchildren (ii))

在uix错误。ChildObserver/addChild (line 116)
obj。addChild (nChild oGrandchildren (ii))

在uix错误。ChildObserver/addChild (line 116)
obj。addChild (nChild oGrandchildren (ii))

在uix错误。ChildObserver/addChild (line 116)
obj。addChild (nChild oGrandchildren (ii))

在uix错误。ChildObserver/addChild (line 116)
obj。addChild (nChild oGrandchildren (ii))

在uix错误。ChildObserver/addChild (line 116)
obj。addChild (nChild oGrandchildren (ii))

错误在uix.ChildObserver > @ (~, e) obj.addChild (nChild e.Child)(第96行)
@ (~,e) obj.addChild (nChild e.Child));

在matlab.graphics.controls.AxesToolbar / parentToolbarToAxesPane错误

在matlab.graphics.controls.ToolbarController / handleMouseMotion错误

错误matlab.graphics.controls.ToolbarController > @ (e、d) obj.handleMouseMotion (e、d)
在uix >。ChildObserver / addChild(第109行)
在uix。ChildObserver / addChild(第116行)
在uix。ChildObserver / addChild(第116行)
在uix。ChildObserver / addChild(第116行)
在uix。ChildObserver / addChild(第116行)
在uix。ChildObserver / addChild(第116行)
在uix。ChildObserver / addChild(第116行)
在uix。ChildObserver / addChild(第116行)
在uix。ChildObserver / addChild(第116行)
在uix.ChildObserver > @ (~, e) obj.addChild (nChild e.Child)(第96行)
在matlab.graphics.controls.AxesToolbar / parentToolbarToAxesPane
在matlab.graphics.controls.ToolbarController / handleMouseMotion
在matlab.graphics.controls.ToolbarController > @ (e、d) obj.handleMouseMotion (e、d)

大卫·桑普森

从2017年11月7日科比,看我的反应。

R2018b更新:
*添加了一个网格布局MATLAB。GUI布局工具箱用户可能想要看一看。
* uifigures支持鼠标事件。万博1manbetx因此可以从这个版本支持flex容器基于javascrip万博1manbetxt的图形。看这个空间。

科比

这与appdesigner吗?如果不是,将支持添加?万博1manbetx

大卫·桑普森

伊恩,节省数据包含GUI布局不支持工具箱容器。万博1manbetx

我没有看这个问题一段时间,但我的回忆是如下。工具箱使用监听器来检测儿童被添加和删除。听众可序列化的。可以重新创建监听器加载通过强制运行构造函数,但在那个时候,没有连接到的对象树,没有后续事件时在加载过程中补充道。

我可以防止崩溃,但是由此产生的容器将僵尸。

伊恩•菲利普斯

伟大的工具箱。

我想知道是否有可能拯救这个生成的GUI工具箱”。无花果的文件。
我曾经尝试过(参见下面的代码)。似乎保存好,但是当我试图加载文件,Matlab崩溃访问违例的错误消息。
我已经尝试了Matlab 2017 b和2018。

任何建议/想法什么可能会导致这个问题?

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
fig_name = sprintf (“GUI测试总结”);
fig_name hMainFig =图(“名字”,……”
‘NumberTitle’,‘off’,……
“位置”,(400 100 1000 800));

%创建一个选项卡面板
tabTitle = (" ");
hHorTabGrp = uix。TabPanel( 'Parent', ...
hMainFig,……
“填充”,0);

% %定义summary选项卡
tabTitle(1) =“总结”;
hTabSum = uix。面板( 'Parent', hHorTabGrp, 'Padding', 3, 'Title', '');
g1 = uix。GridFlex( 'Parent', hTabSum, 'Spacing', 3);
p1 = uix。面板('Parent', g1);
{3}= uix的面板。BoxPanel('Title', 'P3 - Phase', 'Parent', g1);
{4}= uix的面板。BoxPanel('Title', 'P4 - Const', 'Parent', g1);

p2 = uix。面板('Parent', g1);
集(g1,“宽度”,[1 - 2],“高度”,[2]1日);

g2 = uix。GridFlex('Parent', p1, 'Spacing', 3);
{1}= uix的面板。BoxPanel('Title', 'P1 - PolRot1', 'Parent', g2);
{2}= uix的面板。BoxPanel('Title', 'P2 - Spectrum', 'Parent', g2);
集(g2,“高度”,[1]);

g3 = uix。GridFlex('Parent', p2, 'Spacing', 3);
{5}= uix的面板。BoxPanel('Title', 'P5 - Taps', 'Parent', g3);
{6}= uix的面板。BoxPanel('Title', 'P6 - BER', 'Parent', g3);
集(g3,“宽度”,[1]);

fig_path =“GUI_Test.fig”;
savefig (hMainFig fig_path);

Florian Kroetz

达尼

大卫,很高兴得到更新(而不是取决于png)。我必须使用uix的原因。TabGroup确实因为我需要禁用选项卡。

亚当

大卫·桑普森

丹尼,我一直uix返工的情况。TabGroup使用真实uitabs,黑客来模拟禁用。我想摆脱png和缝合在一起的代码。不过我不打算补丁这GLT 1. x。

的人一个提醒,请使用uitab uitabgroup除非你需要禁用这些选项卡,或编写代码,需要R2014b之前运行。

大卫·桑普森

伊恩,谢谢你的反馈。许多人现在要求这种支持。万博1manbetx我一直在关注这个。

达尼

我喜欢更多的矩形外观标准uitab Matlab超过这里使用的花版。就好了是否有选择选择一个或另一个。我知道我可以修改png的资源,但是我还是会缺乏水平线。

yijiawanjia

伊恩

有什么计划更新这个处理uifigure和朋友(或释放一个分离的工具箱)?我认为有几个优点新的GUI系统,然而编程使用仍然是乏味的没有这样的工具箱的帮助! ! !

感谢大卫和本这样一个伟大的工具箱!

雷米Billoire

哈拉尔德我们

雷米Billoire

大卫,
这确实是问题所在。我现在下载V2和完美的工作。
谢谢!

大卫·桑普森

雷米,有两个版本的GUI布局工具箱:
*版本1。x,在//www.tianjin-qmedu.com/matlabcentral/fileexchange/27758-gui-layout-toolboxMATLAB R2014a和
*版本2。x,在//www.tianjin-qmedu.com/matlabcentral/fileexchange/47982-gui-layout-toolboxMATLAB R2014b后来

你的错误表明,您使用的是1。x R2014b或更高版本。确认:
* > >版本matlab将报告matlab版本
* > >版本布局将报告的GUI布局工具箱版本

雷米Billoire

你好大卫,

我只是下载您的工具箱,看起来很有用,但是每次我试着作为“uiextras.VBox ()I got the following issue : No constructor 'handle.listener' with matching signature found.

你知道问题可能来自哪里?

谢谢,

Florian Aendekerk

我一定错过了,谢谢你的快速反应

大卫·桑普森

御马,听起来好像你是传奇经历的问题。你与传说uicontainer内轴,按照2.3节的“彩色和传说”GUI布局工具箱文档吗?

大卫·桑普森

伊恩,固定或浮动是uix支持。万博1manbetxBoxPanel但不是uix.TabPanel。你在找东西的我们提供图对接的MATLAB桌面。我知道我们是看提供的事情等。

Florian Aendekerk

伟大的工具!

别人有问题使用“DisplayName”情节,然后传奇(“-DynamicLegend”) ?

伊恩•菲利普斯

优秀的工具箱。
大卫,我想码头/驶离码头不同的选项卡,其中每个选项卡包含一个阴谋。
我已经尝试编辑”dockexample。m”但我遇到错误”没有DockFcn属性面板上类。”
这是可能的吗?有解决方案吗?

大卫·马克斯

很好!

LSalvation

林严

大卫·桑普森

伟大的黑客,穆罕默德。看起来像CData南(1,1,3)复选框设置为一个单一的、透明的像素。有少量的填充左边边缘,但没关系。

https://undocumentedmatlab.com/blog/transparency-in-uicontrols

泰勒Cumby

添加穆罕默德的跨平台的验证:我发现相同的结果在Linux上,MATLAB 2017 b和Windows 10, MATLAB 2018 b预映。

穆罕默德民兵

大卫,我有一个建议,可以帮助修复箱面板标题问题。据我所知,您正在使用复选框的框面板标题和码头/最小值工具和你试图抵消位置基于MATLAB的版本和操作系统的图标隐藏复选框。我只是遇到解决隐藏复选框没有抵消。我不确定如果你意识到了这一点,所以我只是想分享。这仅仅是通过设置复选框的CData的财产南(1,1,3)。我只是尝试以下代码在Mac和Windows 10, MATLAB 2017 b和结果都是相同的(https://image.ibb.co/mA5qZo/david.png)。

图;
uicontrol(“风格”,“复选框”、“位置”,[10 10 50 15],“字符串”,“ABC”,“背景”,“c”);
uicontrol(“风格”,“复选框”、“位置”,[10 30 50 15],“字符串”,“ABC”,“背景”,“c”, CData,南(1,1,3));

我不是鱼

李甘甘凤头鹦鹉

Seb的偏见

穆罕默德民兵

我尝试你的建议。它没有省略号消失,只有改变它的尾部空格的数量添加到标题字符串的结束。如果标题最初“Sample”和被“山姆……”,添加5空间将它打印像“样本……”

大卫·桑普森

穆罕默德,作为替代,你能检查是否恢复为原始保证金和一个尾随空格添加到标题作品吗?不幸的是它看起来像你已经确认了情况屏幕和打印行为不同。

谢谢大卫。我固定的问题通过改变保证金22。设置为20时,一切都看起来好视觉在屏幕上和省略号显示只有当我保存图(我试着png和pdf)。这并没有改变它之后22日发生了但标签边缘太近所以我固定它通过添加一个空格的开始我boxpanel标题字符串ismac if语句。

大卫·桑普森

米歇尔,一个很好的问题管理依赖性。我个人不赞成将GUI布局工具箱与您的应用程序。如果每个人都这样做,那么最后安装工具箱会赢,而且很难告诉哪个版本运行。相反,我建议你在代码中检查布局GUI工具箱,并帮助用户把它如果他们不拥有它。

检查:
v =版本(布局)

检索:
网络('//www.tianjin-qmedu.com/matlabcentral/fileexchange/47982-gui-layout-toolbox”)
表单的提交自己的url
//www.tianjin-qmedu.com/matlabcentral/mlc-downloads/downloads/submissions/47982/versions/12/download/mltbx
但是没有办法询问最新版本的数量。

在MathWorks,我们一直在讨论增加dependency-aware MATLAB工具箱管理功能,我们一直在与大公司合作实施内部工具箱商店。

大卫·桑普森

穆罕默德,哦这是烦人的。标题是呈现为一个复选框,以便它可以点击,但我需要抵消,因此只有字符串是可见的。所需的偏移量是一个神奇的数字,随平台和MATLAB版本。如果偏移量是错误的标签没有足够的空间,你看到一个省略号。偏移量在helper函数中指定checkBoxLabelOffset uix.Text。你应该看到,Mac的数量是20。你能玩,一个不同的数字是否效果更好吗?我不容易获得Mac。

穆罕默德民兵

谢谢你的支持和大卫快速反馈。万博1manbetx我实际使用联系人按钮在你的个人资料给你发送私人消息几天前关于这个问题我与你分享,但我不确定它有没有达到你。我用你的工具箱版本2.3.2和MATLAB R2017b Mac OSX的最新版本。这将是伟大的如果你有任何解决boxpanel标题问题。

米歇尔·奥罗Nobili

你好大卫,我已经创建了一个工具箱使用GUI布局GUI工具箱(//www.tianjin-qmedu.com/matlabcentral/fileexchange/67508-kview-interface-for-signal-data-easy-visualization-and-processing)
目前的包装我的工具箱里我有一个困境:应该是最佳实践包我的工具箱,取决于你的吗?
一个显而易见的解决方案可能是插入+ uiextras文件夹在我的工具箱。但如果有人已经安装你的工具箱然后他会复制功能。可烦人。
我也试图+附加到一个私人文件夹但不使用+文件夹。
另一种想法是把.mltbx在我的工具箱(我要闭嘴或不会包装);如果你的工具箱不是GUI启动时,检测到一个错误对话框将自动安装它的可能性。
目前我所做的只是检查如果你安装tollbox如果没有抛出一个错误,我给这个页面的链接下载它。它可以完美的如果我可以发送用户addon-explorer正确的页面,这将使过程非常友好。

你有什么特别的建议吗?

大卫·桑普森

布兰卡,GUI布局工具箱支持编程工作流程。万博1manbetx它不是一个指南插件。请看看文档了解GUI布局工具箱是如何工作的,它是否会帮助你更有效率。

布兰卡Larraga

你好,我已经下载了这个工具箱和安装它。我看不到任何的变化引导界面,nos新的特性出现。我怎样才能解决这个?
谢谢!

大卫·桑普森

穆罕默德,漂亮的GUI。有一个问题与截箱面板标题MacOS但我认为这是固定在2.3.2版本,上周发布。如果你有最新的版本,仍然经历这个问题请与我联系通过“联系作者”按钮,我们可以看看它。

穆罕默德民兵

你好大卫,
谢谢你这个完美的工具箱,它使我的生活做一个GUI容易得多。只有一个问题我BoxPanels。当打印pdf的GUI, boxpanels的标题不显示正确的最后几个字母是随机切断。看看下面的图(就是我所看到的在屏幕上方,底部是保存为pdf)
https://ibb.co/i7F5fo

注。我用MATLAB在Mac OS和这是我的部分代码

GUI。GUI.MainContainer BottomContainer = uix.HBox(‘父’,‘写成BackgroundColor’,‘w’,‘距离’,5,'标签',' BottomContainer ');
GUI。ExportPanel = uix.BoxPanel(“父”,GUI。BottomContainer,“标题”,“出口设置”,‘写成BackgroundColor’,‘w’,‘FontWeight’,‘大胆’);
GUI。FCWPanel = uix.BoxPanel(“父”,GUI。BottomContainer '标题',' 3 d图控制部件(结合),‘写成BackgroundColor’,‘w’,‘FontWeight’,‘大胆’);
GUI。SimulationPanel = uix.BoxPanel(“父”,GUI。BottomContainer,“标题”,“动态仿真设置”,‘写成BackgroundColor’,‘w’,‘FontWeight’,‘大胆’);
GUI。ResultsPanel = uix.BoxPanel(“父”,GUI。BottomContainer,“标题”,“结果和状态变量”,‘写成BackgroundColor’,‘w’,‘FontWeight’,‘大胆’);
GUI.BottomContainer。宽度= [1 5 -15];
GUI.BottomContainer。MinimumWidths = (100 375 0 0);

卡齐Nuhman

米歇尔·奥罗Nobili

你好大卫,
您可以添加一个更多的人有兴趣一个GUI布局工具箱应用(uifigure)。
我探索的可能性港口一些GUI uifigure格式。

大卫·桑普森

Carsten,当我说,我的意思是GLT容器,这可能反过来被放置在另一个GLT容器。

卡斯滕•里德尔

我知道,我能做到你提出的方式,但我将不得不手动照顾大小、位置和大小等。GLT是很好,因为它为你做所有这些事情!

但是非常感谢你的评论,我将“手动”代码。

大卫·桑普森

Carsten,你的问题不是特定于GUI布局工具箱。您需要创建一个弹出菜单和一个列表框,弹出菜单的回调设置列表框字符串。此外,由于弹出菜单和列表框混合在一起,你可以把它们放在一个面板,并创建一个自定义类来表示该组件。

卡斯滕•里德尔

你好,

感谢伟大的工具箱!

我有一个这样的建设:

LevelTypes ={1级,2级,3级的}
txt {1} = {‘L1 -’,‘L1 - b’,‘L1 - c’,‘L1 - d '};
txt {2} = {‘L2 - 1’,‘L1 - 2};
txt {3} = {“L3 -我”,“L1 - ii”,“L1 - ii”,“L1 - iii”,“L1 - iv”,“L1 - v”、“L1 - vi”};

无花果=图;
vbox = uix。VBoxFlex('Parent',fig, 'Tag', 'vbox');

为每个LevelTypes %创建一些面板(1)每一个列表框。
%使用面板标题显示“项目”(LevelType)列表框的担忧
N =元素个数(LevelTypes);
lno = 1: N
panel_Listbox (lno) = uix。面板('Parent', vbox, 'Padding', 5, 'BorderType','none', 'Tag', ['panel_Listbox',int2str(lno)], 'Title', LevelTypes{lno});
uicontrol(“父”,panel_Listbox (lno),“风格”,“列表框”,“弦”,txt {lno});
结束

现在我的问题:

我希望标题(即“项目”)是一个弹出菜单,而不是一个不活动的标题。弹出菜单的用户选择将决定相应的列表框的内容。

这是可能的,我怎么能让这个发生的呢?

亲切的问候
Carsten

大卫·桑普森

版本2.3.2 GUI布局工具箱现在可用。亮点:
*配置框面板工具提示
*非零可拖动的分隔器容器的默认间距
*在滚动面板使用可变大小的内容
*固定错误显示框面板标题在Mac

大卫·桑普森

基督徒,谢谢你的澄清。你想要有效地subplot-like行为结合GLT-style布局。我将考虑是否会使这变得容易些虽然有一些技术障碍由于次要情节的方式实现。

基督教小丘

大卫-感谢您使GLT !并感谢您的输入。
在回答你的问题…我想也许我所追求的“差异”是,我不想每个axes-objects单独占用尽可能多的空间,他们可以,因为我希望轴垂直。我建立一个接口,允许查看和滚动通过录音设备,同时记录多个信号。我显示这些信号axes-objects,一axes-object BoxPanel,垂直分布的GUI。我希望轴的精确对齐对象,所以信号排队的时间显示。
如果我允许每个axes-object单独填写BoxPanel(或uicontainer)我不会得到调整,自个人装饰品可能需要不同数量的空间。这就是为什么我想专门设置BoxPanels中的位置,所以axes-objects垂直排列在GUI。

在任何情况下,如前所述,问题已经解决了。我给了uicontainers去,但到目前为止,他们不似乎是必须的。我会记住你的建议,如果我观察干扰bahaviour添加它们。谢谢!

大卫·桑普森

基督徒,一些额外的评论,一个问题。所有GLT容器把他们的内容。如果你有轴BoxPanel,他们将填补它,调整BoxPanel修改尺寸。你不应该直接设置位置GLT容器的孩子,因为你可以指望容器改变这些头寸调整。

轴装饰是否剪与否将取决于ActivePositionProperty轴——“位置”仅显示轴,“outposition”的装饰。有更多的信息在这个文档。通常情况下你会想要填补BoxPanel轴,甚至添加一些填充物,所以我想知道你需要是不同的。

SizeChangedFcn属性来自这样一个事实:GLT容器uicontainer的子类。我不建议将定制代码内容置入GLT容器SizeChangedFcn,因为这就是容器本身提供了。相反,正如罗宾认为,把一个普通uicontainer BoxPanel和钩到uicontainer SizeChangedFcn。

基督教小丘

罗宾-谢谢你的反馈!原来BoxPanel实际上有SizeChangedFcn调属性。只是没有明确列出的文档,虽然州”可用的属性在很大程度上是一样的内装式UIPANEL对象。”
问题解决了。

罗宾杜松子酒

基督教——你也许能够实现这一目标将在uicontainer轴,和uicontainer BoxPanel。然后使用SizeChangedFcn uicontainer,做你想做的事情。

基督教小丘

优秀的工具箱!谢谢你!
这将是伟大的为Flex盒子有一个回调函数,当分配器一直拖着。VBoxFlex里我有许多BoxPanels,和BoxPanels每个轴与指定的位置和大小。但是如果我拖一个分频器,轴突然填写所有BoxPanel,裁剪勾标签。一个回调的分频器可以帮助把事情做好了。(这个问题用斧子突然整个BoxPanel空间,也当调整图窗口包含BoxPanels——然而,在这种情况下,可以通过图调整回调)。
使用R2017b。

杨道

伟大的工具箱!这将是美妙的,如果它支持uifigure创建的数据。万博1manbetx我希望你有一个计划。谢谢你!

大卫·桑普森

斯坦尼斯拉夫,这听起来像是你的一个操作是导致解除父物体的轴和相应。你能给我直接特定复制步骤吗?谢谢!

lcy_joe

你好,
我有一个奇怪的错误:
如果我创建了一个VBox,说,8轴对象:1、2、……8。
如果我把一个数据点的轴顺序翻转,即变成8、7…,1 !
将更多的数据点没有影响和轴保持相反的顺序(8 7…,1)。

任何想法这可能会导致什么?

塞巴斯蒂安。

大卫·桑普森

卢克,使用日志给我的总使用趋势,工具箱版本,MATLAB版本,和操作系统用户非常普遍。使用日志是自愿的,没有个人身份信息被发送。

大卫·桑普森

Bowoon,我同意你的观察场上有很多HTML内容的响应缓慢。这是一个场上的问题,而不是一个GUI工具箱布局问题。我希望每个HTML-containing细胞被自己的JxBrowser。

许多人都想要更多格式控制场上多年。背景颜色和可名列前茅。现在有一个新的基于javascript的图形系统中场上组件,和团队接受增强请求,所以请游说当地MathWorks应用工程师,等等。

HTML内容很好,因为它不需要定制的Java代码,但它提供了有限的功能。另一个选择是为定制Java编写MATLAB包装表。这需要相当多的知识和经验,。你当地MathWorks顾问可能能够帮助。

大卫·桑普森

柯蒂斯,谢谢你的兴趣GUI布局与基于javascript工具箱图形。从2017年11月7日,请参阅我的帖子。如果别人有兴趣此功能请发布在这里。

审视一下自己的期望值,并没有任何Java或基于javascript的图形之间的兼容层。例如,Java uicontrol(“风格”、“按钮”,…)是Javascript uibutton (…)。

吕克·杜谢恩

你为哪个使用数据发送给google分析?

柯蒂斯Mayberry

有没有计划增加支持uifigure吗?万博1manbetx

格雷厄姆·史蒂文

mohammad reza

不下载....知道什么是错误的吗?

平路

hagege鲁本

你好,
我有一个问题HboxFlex:
当创建一个GUI面板承载HboxFlex两持有者图片一样,我体验的指针图像的问题困在“离开”状态,“复原”也许不工作的指针经理?

快速解决我所做的就是用“箭头”代替“复原”updateMousePointer HBoxFlex的函数文件

bowoon金

约翰内斯

你好,
我有一个问题有多个轴,因为它不显示第二个。没有布局框它正常工作。
这是我的代码:
f1 =图(1);
高压= uix。VBox('Parent', f1);
hAx1 =轴(“父”,uicontainer(“父”,高压));
hAx2 =轴(“位置”,hAx1。位置,‘XAxisLocation’,‘前’,‘YAxisLocation’,‘正确的’,‘颜色’,‘没有’,‘XColor’,‘r’,‘YColor’,‘r’);

f2 =图(2);
hAx3 =轴(“父”,f2);
hAx4 =轴(“位置”,hAx3。位置,‘XAxisLocation’,‘前’,‘YAxisLocation’,‘正确的’,‘颜色’,‘没有’,‘XColor’,‘r’,‘YColor’,‘r’);

我做错了什么?
非常感谢。

大卫·桑普森

科比,目前没有计划将GUI布局工具箱GitHub目前的发展。有趣的想法。

Sankar马哈

你好,

我想添加一个传奇dockexample如下所示。但是当我做到这一点,情节被抹去,我只能看到传奇符号在轴上。我怎么情节和添加一个传奇。

请参见下面的代码

dockexample()函数
% DOCKEXAMPLE:一个例子使用panelbox码头/驶离码头功能

% 2009 - 2013版权MathWorks有限公司

%创建窗口,主要布局
无花果=图()
盒= uix。HBox( 'Parent', fig );

uicontrol(“风格”,“列表框”、“父”,盒子,“字符串”,{第一项,第二项的});

%添加三个板箱
{1}= uix的面板。BoxPanel( 'Title', 'Panel 1', 'Parent', box );
{2}= uix的面板。BoxPanel( 'Title', 'Panel 2', 'Parent', box );
{3}= uix的面板。BoxPanel( 'Title', 'Panel 3', 'Parent', box );

%添加一些内容
uicontrol(“风格”、“按钮”,“弦”,“按钮1”,“父母”,面板{1});
uicontrol(“风格”、“按钮”,“弦”,“按钮2”,“父母”,面板{2});
box1 = uix。VBox( 'Parent', panel{3} );
box2 = uix。HBox( 'Parent', box1 );
uicontrol(“风格”、“按钮”,“弦”,”按钮3 ',‘父’,box1);
uicontrol(“风格”、“按钮”,“弦”,”按钮4’,‘父’,box2);
uicontrol(“风格”、“按钮”,“弦”,”按钮5 ',‘父’,box2);

%设置码头/驶离码头回调
集(面板{1},DockFcn, {1}, @nDock);
集(面板{2},DockFcn, {@nDock 2});
{3}集(面板,DockFcn, {@nDock 3});

axes1 =轴(“父”,面板{1})
θ= 0:360;
情节(axes1θ,信德(θ),θ,cosd(θ))
传奇(“罪”,“因为”)

% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - %
函数nDock (eventSource eventData whichpanel) % #好< INUSL >
%设置标志
面板{whichpanel}。停靠= {whichpanel} .Docked ~面板;
如果面板{whichpanel} .Docked
%把它回布局
newfig =得到(面板{whichpanel},“父”);
集(面板{whichpanel},‘父’,框);
删除(newfig);
其他的
%的布局
pos = getpixelposition(面板{whichpanel});
newfig =图(…
“名字”,get(面板{whichpanel},“标题”),…
‘NumberTitle’,‘off’,……
“菜单条”,“没有”,…
“工具栏”,“没有”,…
CloseRequestFcn, {@nDock, whichpanel});
figpos = (newfig,“位置”);
集(newfig,“位置”,[figpos (1:2), pos (3:4)]);
集(面板{whichpanel},‘父’,newfig,…
“单位”、“规范化”,……
“位置”,[0 0 1 1]);
结束
% nDock结束

% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - %
函数nCloseAll (~ ~)
%的用户想关闭应用程序,所以我们需要整理

%删除所有窗口,包括出坞。我们可以这样做
%得到每个面板的窗口和删除它。
2 = 1:元素个数(面板)
如果isvalid ({2}) {2} & & ~ strcmpi(面板。BeingDeleted,“上”)
{二}figh =祖先(面板,“图”);
删除(figh);
结束
结束

% nCloseAll结束

结束%主要功能

巴蒂尔L

bowoon金

亲爱的大卫,谢谢你伟大的工作。

当我调整图包括html、速度是非常缓慢的。
我现在的代码是在形式上类似于;

h =图(10);
结核病= uix.TabPanel(“父”,h);
面板(1)= uix。面板( 'Parent', tb, 'Padding', 5 );
面板(2)= uix。面板( 'Parent',tb, 'Padding', 5 );
面板(3)= uix。面板( 'Parent',tb, 'Padding', 5 );

k = 1:3
vbox = uix.VBox(“父”,面板(k));
j = 1:2
列表框= uicontrol(“风格”,“列表框”,“马克斯”,100年,“父”,vbox);
rn =兰德(50,2);
因为我= 1:50
{我}= [' < html > < tr类= " 4 " > < td背景=“rgb(254198183)”宽度= " 30 " = "中心" >对齐的,num2str (rn(我,1)),< / td > < td >, num2str (rn(我,2)),”< / td > < / tr > < / html > ');
结束
集(列表框'字符串' s)
结束
结束

马库斯

大卫感谢你的快速回答。可能会有一个GUI工具箱在不久的将来,类似的应用程序设计师或QT设计师吗?

对不起,这不是计划发布这个,因为它是一个公司内部的发展。

科比

有什么计划在GitHub,开始接受拉把这个请求吗?

大卫·桑普森

马库斯,我计划在3月发布。对不起已经有一段时间。GUI工具箱非常盛行的布局。但是我没有任何大规模的新特性计划,因为大多数用例可以解决通过使用不同的容器组合。人有什么要求?

大卫·桑普森

科比,你描述的问题被报告为一个问题框面板标题,和我有一个修复。然而,uix。文本is undocumented... caveat emptor.

马库斯

大卫短的问题:
发展的“GUI布局工具箱”被停止或进一步发展?我问,因为我计划写一个更复杂的GUI,但最后更新是13个月前。

非常感谢

科比

我注意到的东西:uix。文本elements look poor on macOS, cutting off the text and leaving some of the checkbox visible.

大卫·桑普森

谢谢撒,我们将正确的这些文档的问题在下一个版本。

有两个小虫子的函数“nDock”“4.3码头和驶离码头”“用户指南”(2.3.1版本):
1。“IsDocked”不再是“uix.BoxPanel”的属性。它应该被“停靠”所取代。
2。“设置(p {whichpanel}…)”应该是“设置面板({whichpanel})”

在函数的开始行“dockexample”:
您可能需要添加的面板={};给它赋值之前,或可能会出现一个错误。

非常感谢你的了不起的工作!

大卫·桑普森

尤里,你可能已经看到了这个话题的讨论:
https://undocumentedmatlab.com/blog/transparent-uipanels

如果你有一个透明的uipanel,特别是你会使用它吗?(我感兴趣是否还有其他的解决方案,将支持您的需求)。万博 尤文图斯万博1manbetx

贝尔山姆

亲爱的大卫,
我只是寻找一种方法使透明面板,能够管理UI背后的背景板。我发现在评论别人寻找相同的事情。请让我们所有人快乐,这样的功能添加到这个美丽的工具箱。谢谢

大卫·桑普森

谢里夫,是一个名不见经传的错误。我一直在问内部但没有建议。如果我得到任何信息,我将发布它。

Sherif Beskhyroun

其他信息我之前帖子:我得到了用Matlab R2017b错误。没有错误和Matlab R2016b当程序被编译

Sherif Beskhyroun

大卫·桑普森

Neelakanthu,目前,你不能使用GUI布局工具箱软件设计师。我们正在整合布局管理功能的GUI布局与基于javascript工具箱(“新”)所使用的图形应用程序设计师,交互和程序化的工作流。

在那之前,我也一直在研究移植GUI布局工具箱使用新的图形。如果有兴趣用户社区,那么我可以考虑,可用。与基于java的图形相比,鼠标事件尚未暴露,所以没有可拖动的分规。也存在一些性能优化,在基于javascript的基于java的图形尚未实现。

Neelakanthu。卡拉

嗨大卫·桑普森……如何使用这个工具箱Appdesigner。是可能的吗?

Kasper Sørensen

你好大卫,非常感谢。我希望我已经给你发送消息的信息:-)

大卫·桑普森

卡斯帕,我们有一些这个问题早些时候的报道,并做了一些修改地址。具体来说,问题是在Mac与视网膜显示器。我不记得是否有变异与MATLAB版本。

你能请联系我直接通过“接触”按钮在我的文件交换个人信息页面,细节:操作系统,MATLAB版本,工具箱版本,和显示设置。

Kasper Sørensen

工作得很好。一个问题关于BoxPanel标题属性。在下面的例子中上部框面板将标题显示“T ....”和较低的标题显示“测试…”。为什么整个标题不显示,即使有足够的空间吗?
f =图,vb = uix.VBox(“父”,f), uix.BoxPanel(‘父’,vb, '标题','测试'),uix。BoxPanel(“父”,vb,“标题”,“测试Bla”)

塞巴斯蒂安。

伟大的工作!谢谢!

大卫·桑普森

马特,你的轴在uicontainer传奇,按照2.3节的“彩色和传说”GUI布局工具箱文档吗?

马特

爱工具箱。别人有问题给一个轴在使用这一个传奇。我得到了,

警告:错误更新传奇。

试图在更新修改树的遍历
我不得到这个错误当添加一个传奇一个轴在一个图之外的gui。

felinsinap

felinsinap

菲利普Dehnen

这是一个绝对伏特加好工具箱。可以实现一个解决方案,“填充”属性也可以允许一个向量的大小1 x4使用它(下面左右以上)如果填充是标量,矢量内所有值就等于这个值吗?

菲利普Dehnen

大卫泰勒

克里斯Szczyglowski

谢谢大卫,我很欣赏你这个工具箱的继续支持。万博1manbetx你的建议是一个版本我试用过,但最后我和我的每个元素分配一个uicontainer uix。网格对象,然后分配每个uicontainer的轴。(我相信这是少数评论)。我想继续使用uix。网格物体as it offers a lot in terms of layout and expansion (i.e. if there are suddenly 10 quantities to plot instead of 6) and I really want to maximise the size of the data on the screen which can be a bit fiddly with subplots . (Hence why I looked into "subplotplus"). My code is now similar in form to this:

x = 0:0.1:10;%一些数据

f =图();%初始化图
g = uix。网格('Parent', f); % create uix.Grid object
u = gobject (1,6);%为uicontainers preallocate变量
iG = 1: 6%循环的数量为每个数量和创建一个轴
u (iG) = uicontainer(“父”,g,“单位”,“归一化”,“位置”,[0 0 1 1]);
轴(u (iG))
情节(x,罪(iG。* x)) %图数据
传奇(sprintf (y =罪第九(%),搞笑))%添加传奇
结束
集(g,“宽度”,[1 1 1],“高度”,[1]);%设置uix。网格formatting

克利斯朵夫

大卫,谢谢你的回复。我有两箱线图VBoxFlex对象。的箱线图,我有一个轴,我想检测时,分配器感动因为我想改变坐标轴限制(XLim和YLim)根据箱线图的高度。

亚尼克Ducret

你好大卫,

分规的话题,我也会喜欢有一个事件为“分配器感动”。目的是为了记住分隔器的位置后感动用户,因此GUI可以重新使用相同的布局。此刻,我等待的对象被删除被关闭(Gui)并保存宽度/高度。

大卫·桑普森

克里斯,在简单的情况下,您可以使用标准uipanel次要情节,反过来,把面板GUI工具箱布局容器内。例如:

f =图();
b = uix。HBoxFlex( 'Parent', f, 'Padding', 10, 'Spacing', 10 );
p = uipanel(“父”,b,“标题”,“我的小组”,…
“单位”、“规范化”、“位置”,[0.1 0.1 0.8 0.8]);
x = 0:0.1:10;%一些数据
a11 =次要情节(2 2 1,‘父’,p);
情节(a11 x, sin (x), b -)
传奇(a11,“蓝”)
a12 =次要情节(2,2,2,‘父’,p);
情节(a12, x, cos (x), r——)
标题(a12,“没有传奇”)%,但标题
a21 =次要情节(2,2,4,‘父’,p);
山峰();
传奇(a21,“峰”,“位置”,“东北”)
a22 =次要情节(2,2,3,‘父’,p);
情节(a22 x,谭(x)的g -。”)
传奇(a22,“绿色”)
c = uicontrol(“父”,b,字形大小,50岁的“字符串”,“推!”);
b.Widths (2) = 300;

如果符合您的需求,请让我知道。

大卫·桑普森

克利斯朵夫,没有没有一个回调鼠标分配器,分配器移动,或分配器感动。它将有助于理解明确你想做什么,是否修改或增加当前的行为。

克利斯朵夫

大卫,伟大的工具箱。我现在一直在使用工具箱一段时间,我想知道如果有一个回调函数的分频器吗?我想要运行一个函数,当用户单击分配器。如果没有回调,我怎么能轻易知道指针的分频器吗?

克里斯Szczyglowski

大卫,谢谢你一个优秀的文件提交。这个包向我推荐了你的一个顾问菲利普Rottier和我必须说这是非常易于使用和非常良好的文档记录。

我的一个担忧是困难增加传说轴内的一些uix对象。目前,我想创建一个使用uix 2 x3网格轴。网格物体and would like to assign a legend to each axes, however, when I do this I end up with 12 objects in total (6 axes and 6 legends).

我有一些与分配6 uix有限的成功。uix面板。网格物体and then embedding the axes and legend inside a uix.HBox/uix.VBox but the formatting is not as clean as a simple MatLab axes/plot/legend sequence. My current fix is to use another FEX function "subplotplus.m" to generate my grid of subplots and assign these to a normal uitab object. Not as pretty but it will do for the meantime.

你提到一个新对象类似于单元音uiaxes理想和真正赞美一个已经出色的工具箱。我期待着当添加这个功能。

大卫·桑普森

尤金,GUI布局工具箱编程模型是指定大小的内容通过父容器的属性。你能请提供一些更多的信息关于你想指定内容大小和你期望职位内容如何改变当父尺寸,这样我们可以建议如何实现(或不)与GUI布局工具箱?

大卫·桑普森

支持轴画,没有进展与传说直接GLT容器的孩万博1manbetx子。用于布局,你真的需要一些包含轴和容器。

上周,我一直在关注GUI布局工具箱使用web图形系统支撑软件设计师。这里有一个新的组件——uiaxes——既包含轴及其相关的物品(例如,传说)。

尤金齐默尔曼

你好大卫,
伟大的工作。我试图在我的一个gui实现这个我写,目前有点令人沮丧。到目前为止我总是把一切手动创建GUI对象打包到一个面板。这些“对象”应固定在大小和我不想有一个比例,但这将是伟大的安排这些电池板自动,所以我不需要担心确切位置的图了。有可能包括电池板固定大小成HBox或网格,不使用宽度和高度属性?
谢谢,
尤金

DrewVam55

你好大卫,

我用这几个不同的gui,还有喜欢它。你有没有想出一个解决方案所需uicontainer被适当的传奇人物行为?
我需要GUI的传说,但是uicontainer和相关轴/传说似乎在我的VBox调整不佳,得到后切断顶部图大幅萎缩而调整轴。我已经尝试了uicontainers VBox的指导孩子们以及包装在一个面板或盒子。我ItemHitFcn (clickToggleVisibility)为我的传奇在这些uicontainers似乎并没有内工作的GUI布局工具箱,但我不确定这是一个GUI工具箱布局问题。

谢谢,
安德鲁

大卫·桑普森

马丁,我相信R2014b之前,可以设置写成BackgroundColor uipanel的“没有”。例如,请参见http://undocumentedmatlab.com/blog/transparent-uipanels。然而,从R2014b,情况已不再是这样。我会抓住这个作为改进请求。

马丁Kabelka

大卫

伟大的工具箱,我现在已经使用了几年(包括前14 b释放)。

令我感到非常开心与HBoxes控制布局,vbox,等等,但现在我想把一个图像作为背景整个GUI。不幸的是,我似乎无法找到一种方法使Hboxes /板透明,所以图像背景中是可见的。我知道如何使uicontrol和文本标签透明(由于Yair undocumentedmatlab.com博客),但我在努力使uipanels透明。你能想到一种方法如何与背景图像有一个GUI,而利用你的工具箱?

大卫·桑普森

阿兰,对于uitab和uix。TabPanel,please see my reply to Tim dated 14 April 2017.

ScrollingPanel滑块位置由属性VerticalOffsets和HorizontalOffsets控制。

Christoph Heisen

很好的工具。与到目前为止和扩展uix 2.2版本。TabPanelso that the BackgroundColor is applied to the dividers UIControl too:

指数:TabPanel.m
= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
- - - TabPanel。m(336年修订)
+ + + TabPanel。(工作副本)
-79年@@,7 + 79,8 @@

%建立分规
分规= matlab.ui.control。UIControl(“内部”,真的,…
——“父”,obj,“单位”,“像素”、“风格”,“复选框”);
+“父”,obj,“单位”,“像素”、“风格”,“复选框”,…
+ '写成BackgroundColor obj.BackgroundColor);

%创建监听器
backgroundColorListener =事件。proplistener (obj,……
@@ @@ -795、6 + 796 9

函数onBackgroundColorChange (obj, ~ ~)

+ %传播两脚规ui元素
+ (obj。分频器s, 'BackgroundColor', obj.BackgroundColor)
+
%马克是肮脏的
obj。脏= true;

阿兰Barraud

嗨,大卫
神奇的工具箱! ! !但是一些问题。
使用uix。BoxPanel( ) same remark as Team. It would be nice to have the solution within this toolbox without refering to uitab.
使用uix。ScrollingPanel()如何正确设置滑块初始位置(希登属性)
我可能错过了一些uix。ScrollingPanel试图用一些滚动多轴固定数量同时在屏幕上可见。看到下面的m文件。致以最亲切的问候。阿兰
函数TestUIEXTRA(国旗)
如果输入参数个数= = 0,标志= 1;结束
关闭所有
图(f =“名称”,“滚动几个轴”,“单位”,“规范”,“outerposition”, [0 0 1 1]);
p = uix。ScrollingPanel(“父”,f);
hh = uipanel(“父”,p);
hhpos = getpixelposition (hh); W = hhpos (3); H = hhpos (4), y = 0;
ns = 3; %我希望3轴同时可见(在屏幕上)
n = 8。%的总数轴
ax = gobject (n, 1);
%第一次分别
如果国旗
k = 1: n
ax =轴(“父”,hh,“单位”,“像素”,“outerposition”, [0 y W H / ns]), y = y + H / ns;
标题(num2str (k))
结束
结束
组(p“宽度”.98 * W,“高度”,n * H / ns,“HorizontalOffsets”, 0, VerticalOffsets, 0)
% p后第二个可能性轴设置设置
如果国旗~ = 1
k = 1: n
ax (k) =轴(hh“父”,“单位”,“像素”,“outerposition”, [0.025 * * W H / W y .95 ns]), y = y + H / ns;
标题(num2str (k))
结束
结束
%很奇怪的结果在任何情况下但不同
% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %

布莱希特

亚尼克Ducret

证实了大卫,没有GUI布局的问题仍然存在:
跳频=图;
uipanel(“父”,跳频,“位置”,[0 0 0.5 - 1],'标题','控制');
uipanel(“父”,跳频,“位置”,[0 0.5 0.5 1],“标题”、“深度”);

达尼亚尼克,听起来不像是一个GUI工具箱布局问题本身。你能请确认是否与两个并排uipanels:你看到同样的效果
跳频=图;
h_hbox uipanel(“父”,“位置”,[0 0 0.5 - 1],'标题','控制');
h_hbox uipanel(“父”,“位置”,[0 0.5 0.5 1],“标题”、“深度”);

达尼

谢谢亚尼克。的工作原理。

亚尼克Ducret

丹尼,我有同样的问题。我现在使用的字体名,“天线”我所有的GUI。

达尼

如果我运行下面的代码(上)周围的线板调整不当。如果我第二个面板的标题改为“CDepth”之后,即是相关的标题文本。什么方法可以解决这个问题吗?

跳频=图;
h_hbox = uix。HBox('Parent', fh);
uix。h_hbox面板(“父”,“标题”,“控制”);
uix。h_hbox面板(“父”,“标题”,“深度”);

吉安卡洛

阿里kermani

克里希纳moparthi

伊莱亚斯Fulthorp

Leul Belayneh

类“uiextras”是未定义的。
也许Java没有运行。

这个文本出现在运行一个MATLAB代码。如何解决?

lv

大卫·桑普森

杰克,请参阅第6节的GUI工具箱文档布局,“部署GUI使用MATLAB编译器”。

大卫·桑普森

Grzegorz,是的,你可以,只要你遵守:
1。MathWorks公司软件许可协议(请参阅Help >使用条款)
2。GUI布局工具箱许可证(请参见上面的“查看许可证”链接)

有关许可证的更多背景文件交换意见,见:
//www.tianjin-qmedu.com/matlabcentral/FX_transition_faq.html

Grzegorz Knor

我可以在商业应用程序中使用GUI布局工具箱吗?这是计划部署为独立的可执行文件。

杰克·斯宾塞

你好大卫,

我用R2016b 2.3.1版本的GUI工具箱布局。附近有工作使GUI布局工具箱使用MATLAB编译器吗?

谢谢,
杰克

杰克·斯宾塞

我用R2016b 2.3.1版本的GUI工具箱布局。

大卫·桑普森

蒂姆,如果你不需要禁用标签的能力,那么你应该使用uitab,添加在R2014b MATLAB。这提供了一个小滑块滚动选项卡标题变长。

如果你需要禁用*和*长选项卡标题然后让我知道,我可以游说进一步禁用添加到MATLAB。

Grzegorz Knor

就像一个魅力:)非常直观。

蒂姆Spaeder

你好大卫,
首先:这是一个了不起的工具,坦克非常感谢你。

我有一个问题关于TabPanel的处理。我有一个GUI创建很多标签。接下来的兆瓦说明:

h。主窗口=图(“名字”,“Testfigure”);
% mainContainer包含所有内容
h。mainContainer = uiextras.VBox(“父”,h.mainWindow);
% tabPanel各种页面
h。TabBar = uiextras.TabPanel (…
“父”,h.mainContainer,…
' TabSize ', 1);
%创建大量的选项卡
因为我= 1:20
pageHandle = sprintf(页面% 1.0 f, i);
h。(pageHandle) = uicontrol (…
“父”,h.TabBar,…
“风格”,“文本”,…
“字符串”,(“内容”,pageHandle));
结束

很明显,每个选项卡的“TabName”正在缩短,因此不可读。知道如何解决这个问题吗?我希望能够阅读完整的TabName,但我并不真正关心的格式。

——我在想,如果我能以某种方式让TabPanel本身可滚动并设置每个选项卡的“TabSize”说80分。
——或者我想改变的高度TabBar所以TabName可以跨两行
——另一种替代方法可能是只设置一个特定数量的标签中可见TabBar根据标签是活跃和改变能见度时另一个选项卡被选中

你能提供一个建议这个问题?

“国丰

伟大的工具箱!喜欢它!它使得编写Matlab GUI的更有效率。Javacomponent一起,一个人可以发展很好的GUI。虽然应用程序设计师提供了现代GUI设计和看起来很酷的,目前它的能力仍是有限的,因为它开始使用新的uifigure,图组件不兼容。所以目前,我将使用布局设计在Matlab GUI工具箱。
一个问题是起始速度可能会很慢,如果你有不少的GUI组件。所讨论的其他用户,这是由于许多呼吁重新绘制函数。希望很快可以帮助解决这个问题。

亚尼克Ducret

你好大卫,

activeX控件的调用“移动”方法的“SizeChangedFcn”uix母公司工作完美。

唯一的痛苦是找到关于父uix容器的相对位置。图。我最终倾泻下来的所有祖先,总结的位置,直到我找到图。

大卫·巴里

+ 1投的能力增加了禁用重绘,直到所有的孩子。这将是非常有用的GUI我目前写我在哪里创建元素在一个循环中,浪费时间重新划定,直到我完成循环。

大卫·桑普森

鲍里斯,看到我的发布日期为2016年2月25日。请重新排序的内容使用内容属性,而不是孩子的财产。

BorisPas

你好,

我目前构建Gui的非常有用的工具。
我有一个问题关于插入盒子。
我想在特定位置插入一个盒子之间其他已经包括的。到目前为止我实现这一目标通过添加一个新的盒子,然后改变数组中的顺序。

例如:盒子。儿童(2[1])=盒子。儿童(2 [1]);

这样是我的愿望,但这需要很长时间特别是当我得到更多的字段。在我的情况下,需要几秒钟就插入一个盒子。

有一个更好的方法来在堆栈中的特定位置插入盒子吗?

亲切的问候
鲍里斯

BorisPas

Cortexlab

谢谢大卫。也许一种方法除了向用户提供“RedrawMode”标记将会提供一个函数,填充uix的每个元素。网格与某种类型的对象(如uicontrol或uix.Box)。这个函数可以照顾禁用/启用RedrawMode本身。因为改变的字符串和风格uicontrol相对非常快,这至少会解决这个问题在我的特殊情况下,虽然可能不像一般为用户提供版本。在任何情况下,让我知道如果你想出什么!谢谢。

大卫·桑普森

尼克,谢谢你的基准代码。看到我的评论从2016年2月23日起暂时禁用重绘。我认为这可以加速你的情况~ 40%。我们将看一看。

Chandrama衬衣

Cortexlab

你好,谢谢你使一个非常美妙的工具箱!令人惊讶的是简单的创建复杂的gui。

然而,我们有一个问题与性能。我们涉及到uix gui。网格with about 100 uicontrols in it. It takes about 3 sec to create this grid, which isn't good enough because we have to re-create versions of it frequently when users interact with the gui. From profview it looks like the vast majority of this time is in "addChild" and especially in the "setPosition" commands that it ends up calling over 5000 times (presumably re-drawing everything each time a single child is added). Do you have any suggestions for how I can improve the speed? Below is a sort of minimal example that takes nearly as much time as our entire GUI. Thanks!

尼克

抽搐;
f =图;
g = uix。网格('Parent', f);
nR = 33;
为r = 1: nR
uicontrol(“父”,g,“风格”,“文本”,“弦”,sprintf (text_ % d, r));
uicontrol(“父”,g,“风格”,“按钮”,“弦”,sprintf (btn1_ % d, r));
uicontrol(“父”,g,“风格”,“按钮”,“弦”,sprintf (btn2_ % d, r));
结束
toc % 2.5秒到这里

ch = allchild (g);
chReorder =重塑(重塑(ch(结束:1:1),3、nR)”, nR * 3, 1);
g。内容= chReorder;

g。宽度= (100、100、100);
g。间隔= 1;
g。身高= 25 *的(nR);

toc % 2.55秒到这里

默罕默德Awais

如何安装这个在matlab工具箱吗

大卫·桑普森

亚尼克,不幸的是,支持控制active x的位置控制很万博1manbetx差。你可以设置像素的位置对父图的创建,但是什么都没有。万博1manbetx支持Java组件更好。

我看看需要同步一个active x控制与另一个组件的位置,并放弃了。存在许多成分——getpixelposition SizeChanged和LocationChanged事件,移动的方法,但问题仍然保持控制,迫使重绘,和处理像素扩展。

这是MATLAB的限制,而不是GUI布局工具箱。

大卫·桑普森

2017年2月13日若昂,看到我的评论:“我们不提供一种方法来指定生成……”

米甲葛

很酷的东西。它像一个魅力(到目前为止我还没有遇到任何问题)。没有被强迫做这些手工布局是一个非常有用的东西。非常感谢:)

若昂铁

你好大卫,有一种简单的方法来有效地在uix合并单元。网格对象(也许玩的宽度和高度属性)?谢谢,若昂

亚尼克Ducret

你好所有的,

有任何身体试图ActivX控制在uix组件?

在理论上是可行的,但是您只能定义关于ActiveX控件位置。图。你如何找到你的确切位置uix面板/框内的图吗?

默罕默德Abdurrehman

你好,

我甚至下载.mltbx文件在历史上第一次。谁能帮我请如何添加这个.mltbx文件到我的Matlab和如何使用它。我有Matlab 2016谢谢

简·凯勒

DrewVam55

你好大卫,

我想我只是需要继续阅读更多的文章找到我的解决方案…它太棒了!我唯一的建议(我为我自己做这个小的修改)是防止onMouseWheelScrolled滚动动作如果启用了MATLAB的原生缩放模式。如果不这样做,你会得到一个滚动的面板和数字的组合简单放大/缩小随着光标的流逝。

再次感谢,
安德鲁

大卫·桑普森

安德鲁,我添加了你提到的特性——拖动滚动,滚动轮,1月31日在2.3.1版本中。让我知道你喜欢它们,如果你有建议进一步修改。

DrewVam55

你好大卫,

多么困难会修改滚动面板积极移动,滑动不仅在鼠标释放?

我希望会有一个合理的解决方案控制mousewheel,而是来自你的努力,似乎不可能。同时,使GUI窗口更新当你移动滚动条还会大大有助于改善可用性。

谢谢,
安德鲁

若昂铁

非常感谢大卫,现在的工作。大大拇指!

大卫·桑普森

若昂,这里是ScrollingPanel网格的一个例子。在这种情况下这是一个固定大小的网格大小在一个变量滚动面板。

f =图;
s = uix。ScrollingPanel(“父”,f);
g = uix。网格( 'Parent', s, 'Padding', 10, 'Spacing', 10 );
2 = 1:16,uicontrol(“父”,g,“字符串”,(二);结束
g。身高= (200 200 200 200);% 4固定行
年代。身高= 850;

相关的,我试过,但未能添加支持variable-with-minimu万博1manbetxm上浆2.3.1版本。这将为例:

g。身高= [1 1 1 1];% 4变量行
年代。MinimumHeights = 500;% s。身高= 1

解决这个名单上的下一个版本。

大卫·桑普森

若昂,违约:

我建议,每个类,一个函数创建一个对象并设置它的一些属性默认值,同时允许用户设置。

函数obj = myVBox(变长度输入宗量)
obj = uix。VBox( varargin{:}, 'BackgroundColor', 'w' );
结束

如果你想要一个这样的函数来共享相同的属性值,那么你可以创建一个函数。

c = myBackgroundColor()函数
c = ' w ';
结束

如果你想要一个多变,粘性违约然后可以使用偏好。

getpref (' uix ', '写成BackgroundColor ', ' w ')

若昂铁

大卫谢谢你的回复。在特定的应用程序,我将设置默认背景颜色的所有元素(VBox, HBox面板、网格等)为白色。你能ellaborate工厂功能的建议吗?

在一个不同的话题,我也在努力利用ScrollingPanel轴以外的东西,如文档所示。什么是滚动条显示的实际情况(如位置(4)滚动面板需要的价值小于其孩子)?你能提供一些示例VBox或一个网格,例如?

大卫·桑普森

若昂,你正在寻找类似的设置(0 ' DefaultHBoxPadding 10),或者如果你觉得特别有现代,设置(groot (),…)。

不幸的是,MATLAB图形违约系统只适用于图形类MATLAB本身的一部分。在GUI布局工具箱版本1 (R2014b之前),我们砍在有限的功能类,但是它从来没有成功过,并被大重写版本2 (R2014b起)。

如果你总是想创建对象的某些属性值,我建议你创建一组工厂函数。偏好(如getpref和setpref)可能也有作用,这取决于你想实现什么。

若昂铁

你好大卫,伟大的工具箱!是否可以设置一个默认属性值的任何类uix包,例如设置默认背景颜色对于任何VBox, HBox创造出来的?我理解可以根级别的任何图形对象,但我不知道如何做到这一点在用户定义的类。提前感谢。

大卫·桑普森

有关安装工具箱(.mltbx)文件的问题,你可以联系MathWorks支持。万博1manbetxwww.tianjin-qmedu.com/万博1manbetxsupport

这里有几种方法来确认一个工具箱安装:
*发布附加组件管理器
*检查matlab.addons.toolbox.installedToolboxes的输出
*如果工具箱包括文档、启动文档浏览器,并检查下“补充软件”
*如果工具箱中包含的内容。米,使用版本,例如,版本(布局)

米一个

米一个

奥萨马阿巴斯

我有MATLAB R2015a。当我试着安装您的工具箱,看来这是安装,但是我找不到它! !是什么错了吗?

大卫·桑普森

Yoav,我们不提供一种方法来指定生成,而是可以通过嵌套实现你需要如果你设置适当的宽度和高度。

Yoav Romach

这可能会增加一个选项在一个网格为一个项目多个点?

我有一个8 x5网格,但我希望最后一个4项(底部)一个按钮……

目前有什么方法吗?

大卫·桑普森

亚尼克,MATLAB使用列为主的排序,而西方阅读订单行。我没有感到舒适与MATLAB的默认这是不同的,即使你不是第一个提供这种反馈。我们有玩弄提供一个开关来控制秩序,也允许规范的内容作为一个矩阵而不是一个向量。我们需要更多的思考这一点。

亚尼克Ducret

你好大卫,我最终跟踪函数重载已装船时一致的结果。每一个小帮助运行时通过运行时。不知道为什么需要这么长时间,我想这与代理。

在另一个注意,我总是编辑网格类,因为我需要它来建立逐行而不是列的列。最好是能够选择当调用它。

大卫·桑普森

马修,最低高度和宽度滚动面板内容可从2.3.1版本,今天发布。

f =图();
s = uix。ScrollingPanel(“父”,f);
h = uix。HBox( 'Parent', s, 'Padding', 10, 'Spacing', 10 );
2 = 1:4,uicontrol(“父”,h,“字符串”,(二);结束
年代。MinimumWidths = 450;

埃里克,我还添加了wheel-based滚动。

f =图();
f.Position (3:4) = 450;
movegui (f,“中心”);
p = uix。ScrollingPanel(“父”,f);
n = 30;h = 20;s = 5;
g = uix。网格( 'Parent', p, 'Padding', s, 'Spacing', s );
2 = 1:n, uicontrol(“父”,g,“风格”,“文本”,“弦”,sprintf(参数# % d:,(二),“使”,“不活跃”);结束
2 = 1:n, uicontrol(“父”,g,“风格”,“编辑”);结束
g。宽度= [1];
g.Heights (:) = h;
p。高度h + = n * (n + 1) *;

不幸的是,我发现两个特性不一起工作。Wheel-based滚动目前只适用于固定的大小,而不是变量大小与最小值。

大卫·桑普森

马修,我同意将是有用的提供一种方法来设置最低高度和宽度可滚动面板。这并不冲突与当前GUI布局工具箱编程模型。我抓住了一个增强请求列入即将发布。谢谢你的建议。

马修角落

下午大卫,

首先,神奇的资源。我有一点玩耍的滚动面板,我想知道以下的解决方案。

说在一个gui我有一个滚动面板作为主要的包装器。在这我有一个HBox灵活的宽度,但基于最小宽度的最小宽度的孩子。我怎么能力滚动面板尊重这个当窗口大小小于最小宽度的孩子吗?

我预计minimumWidths / minimumWidths产权的ScrollingPanel适用于孩子,但这些是不存在的。

问候,

马特

大卫·桑普森

修正我的最后一条消息:我不意味着WindowScrollWheel, WindowMouseMotion。

大卫·桑普森

埃里克,我看着提供wheel-driven滚动。这将导致勾搭图WindowMouseMotion事件的侦听器。面临的挑战是找出ScrollingPanel指针是否,因为这是用户期望的行为。

最简单的是检查是否HitObject ScrollingPanel事件数据。然而,依赖于用户关掉HitTest一切的容器。

另一个选项是检查是否HitObject ScrollingPanel或它的任何孩子。调用allchild的指针移动将是缓慢的,和维护一个缓存的后裔是容易出错的。

计算ScrollingPanel的绝对位置,并比较绝对的指针位置,为数据对接是困难的。你还需要担心什么是最重要的。最后,你必须缓存信息提供良好的性能。

总之,我现在已经停了,但想重温它在未来。

大卫·桑普森

亚尼克,我想知道为什么在您的环境中性能明显比我所见过的。我预计不到0.1秒,通常约0.03年代,所有这些是urlread调用。

作为一个提醒:
1。跟踪每个MATLAB称为一次会话,你第一次创建一个GLT对象。
2。我试图量化使用构建的开发资源。

亚尼克Ducret

发现我可以节省1全秒当创建gui关闭使用跟踪:

uix.tracking(“了”)

Erik Turlejski

你好,
我在想是否可以使用鼠标滚轮滚动uix.ScrollingPanel ?
不确定这是相关但我在Mac和滚动滚动面板的唯一途径是通过滑块。
谢谢!

大卫·桑普森

DrewVam55 uix。ScrollingPanel,像其他GLT电池板,一次只显示一个孩子。哪一个孩子由财产控制选择。

你可以把次要情节在一个容器(uicontainer或uipanel(“标题”,“‘BorderType’,‘没有’),把容器放在一个滚动面板。

f =图;
s = uix。ScrollingPanel(“父”,f);
p = uipanel(父,年代,“BorderType”,“没有一个”);
t = 10:0.01:10;
a1 =次要情节(4 1 1‘父’,p);
情节(a1, t, sin (t));
a2 =次要情节(4,1,2,‘父’,p);
情节(a2, t, cost);
a3 =次要情节(4 1 3‘父’,p);
情节(a3, t (t));
a4 =次要情节(4,1,4,‘父’,p);
情节(a4, t, t);
年代。身高= 1000;%比面板高

(我认为这种反应会引发一系列的后续问题我没有满意答案!)

鲍特Jacqmin

任何新闻当这个可怕的工具箱将兼容AppDesigner ?…

非常感谢

DrewVam55

你好大卫,

有什么更新这个计划与次要情节功能()?我一直试图想出一个好方法把一个GUI和几个图表(太多的一个屏幕)和次要情节和ScrollingPanel将完美的结合。到目前为止,我相信次要情节以某种方式被破坏的内部面板当孩子添加/删除侦听器执行,只有当前轴进行事件回调后,和其他的次要情节轴即消失。

DrewVam55

大卫·桑普森

对于任何与安装有问题,这里有一些建议。

确保您下载工具箱,zip文件。

一旦你.mltbx文件,有几种方法可以安装。都应该工作。
1。双击该文件外部MATLAB。文件扩展名应该与MATLAB在安装过程中。
2。双击该文件在当前目录视图在MATLAB。
3所示。matlab.addons.toolbox。后来installToolbox (16)

GUI布局工具箱2。x与MATLAB R2104b后来。

名选手Fedoniuk

我用Matlab R2016b,不能安装这个工具箱无论我尝试什么。

大卫·桑普森

第一次,GUI布局工具箱已经达到每月1000下载。对你的兴趣,谢谢大家的支持和反馈。万博1manbetx

如果您使用的是旧版本,请下载最新版本得到改进和错误修正。工具箱是稳定的,我们有一个良好的测试套件,我们在MATLAB版本可以追溯到R2014b连续运行,所以应该没有痛苦只有获得更新。

如果你发现GUI布局工具箱有用请传播这个词,请考虑评级提交文件交换。

Therry

你好大卫,
该工具效果很好!一个缺点(解决):移动鼠标快捷菜单的一大图减慢反应时间有时10 s取决于运动)。在嵌入式功能包括“drawnow”后“onMouseMotion”GridFlex, HBoxFlex并再次VBoxFlex反应时间快。有可能包括在你的下一个问题吗?

大卫·桑普森

史蒂夫,不应当有任何特定问题GLT容器内使用上下文菜单。例如:

t = 0:0.1:10;%的时间
f =图();
g = uix。网格( 'Parent', f, 'Padding', 50, 'Spacing', 50 );
r = 3;c = 2;%行和列
2 = 1:r * c
=轴(“父”,g,“ActivePositionProperty”,“位置”);
情节(t,兰德(大小(t)));
结束
g。身高= repmat (1 r [1]);
c = uicontextmenu(“父”,f);
uimenu(“父”,c,“标签”,“的”);
uimenu(“父”,c,“标签”,“数学”);
uimenu(“父”,c,“标签”,“作品”);
集(g。内容、UIContextMenu, c)

您发布的代码没有运行。

史蒂夫Ratts

优秀的工具箱!真正伟大的文档很容易开始使用它。

我被困在一件事上。我似乎不能添加uicontextmenus情节。我试着Mathworks提供通用的指导后,当然他们的代码能够工作与普通数据,但是当我试着做同样的事情将它应用到我绘制在一个轴是一个网格的一部分我得到一个错误消息,说没有标签属性菜单上类。

这是我试过的一个例子。在这个示例中创建的所有对象我在gui结构,和我的gui的数据的数据结构。GUI的2 x3网格轴的GUI。轴数组。除了呼吁uimenu,一切似乎正常工作:

为n = 1:6
keyIndex = data.Index + n - 1;
如果keyIndex < = 256
p =情节(gui.axes (n), data.keys (keyIndex:));
c = uicontextmenu;
p。UIContextMenu = c;
m1 = uimenu (c、“标签”、“放大”,“回调”,@onZoomIn);
m2 = uimenu (c、“标签”、“缩小”,“回调”,@onZoomOut);
m3 = uimenu (c、“标签”、“重置”、“回调”,@onResetZoom);
ylim (gui.axes (n), ylim);
集(gui.axes (n),“字形大小”,6);
XLim =得到(gui.axes (n),“XLim”);
文本(gui.axes (n), 0.02 * XLim (2), 0.9 * YLim (2),…
sprintf('关键字节= % d ', keyIndex-1),…
“字形大小”,6);
其他的
班(gui.axes (n))
结束
结束

史蒂夫Ratts

克利斯朵夫

大卫,谢谢你的例子和评论,我现在更好地理解这个新面板的使用。

大卫·巴里

谢谢你uix。ScrollingPanel大卫和本。你刚刚再次加大了MATLAB软件建立游戏。我希望您的开发同事正在认真考虑此功能为应用程序设计师。

大卫·桑普森

到目前为止,主要的用例是奠定了一个高大的列表控件在一个有限的垂直空间。

f =图();
f.Position (3:4) = 450;
movegui (f,“中心”);
p = uix。ScrollingPanel(“父”,f);
n = 30;h = 20;s = 5;
g = uix。网格( 'Parent', p, 'Padding', s, 'Spacing', s );
2 = 1:n
uicontrol(“父”,g,‘风格’,‘文本’,‘HorizontalAlignment’,……
“对”,“弦”,sprintf(参数# % d:,(二));
结束
2 = 1:n
uicontrol(“父”,g,“风格”,“编辑”);
结束
g。宽度= [1];
g.Heights (:) = h;
p。高度h + = n * (n + 1) *;

克利斯朵夫

新的滚动面板似乎工作得很好,但我不知道如果我将使用它,因为它可能只帮助非常特殊的情况。如果你有一个例子将充分利用它,我想看到它。
无论如何,新的可能性/工具总是欢迎:)

大卫·桑普森

把uicontainers VBox和轴之间似乎有帮助,虽然我仍然会寻求理解更多关于为什么文士层是轴在第一时间删除。

gui。ViewContainer1 = uicontainer(“父”,gui。ViewLayout);
gui。ViewAxes1 =轴(“父”,gui。ViewContainer1);
gui。ViewContainer2 = uicontainer(“父”,gui。ViewLayout);
gui。ViewAxes2 =轴(“父”,gui。ViewContainer2);

TRogers

优秀的工具箱!谢谢你大卫

我可能已经发现了一个小错误(下面的例子)。

我有两个坐标轴显示不同的图片。如果我点击数据光标,然后点击一个点的图像/轴,他们在GUI互换位置。进一步点击不再交换位置。

什么好主意吗?我的代码是错误的吗?

我使用Linux上R2016a。

案例- - - - - - - - - -例子
关闭所有;清除所有;
gui =结构();

gui。窗口=图(…
“名称”、“图像查看器”,…
‘NumberTitle’,‘off’,……
“菜单条”,“没有”,…
“工具栏”,“图”,…
‘HandleVisibility’,‘了’,‘颜色’,‘w’,‘单位’,‘标准化’,‘outerposition’, (0, 0, 1, 1));

browseLayout = uiextras。HBoxFlex(“父”,gui。窗口中,“间距”,3);

gui。ViewPanel = uiextras。BoxPanel (…
“父”,browseLayout,…
“标题”、“图像查看器”);

gui。ViewLayout = uiextras。VBox(“父”,gui。ViewPanel,……
“填充”、3、“间距”,3);

gui。ViewAxes1 =轴(“父”,gui.ViewLayout);
gui。ViewAxes2 =轴(“父”,gui.ViewLayout);
linkaxes ([gui.ViewAxes1 gui.ViewAxes2]);

I1 = 1 (700、1400);
I2 = 0 (700、1400);

imshow (I1,[],‘父’,gui.ViewAxes1)
imshow (I2,[],‘父’,gui.ViewAxes2)

大卫·桑普森

2.3版本的GUI布局工具箱现在可用。请给新的滚动面板一试!

TestingMatlab

大卫,谢谢你的帮助和感谢你的评论,同意你的意见,以避免对event.listener addlistener。我失败是想听注释删除事件之后,设置(gco”,选中“关闭”)。非常感谢您的解决方案。

大卫·桑普森

阿米特,我不能评估是否你正在试图做的是合理的,但我可以告诉你如何让一个组件用来控制:在财产上创建一个监听器‘选择’,并配置监听器回调设置属性值回“了”。

addlistener (o, findprop (o,“选择”),PostSet, @ (~, e)组(e.AffectedObject,“选择”,“关闭”))

我通常避免addlistener事件。侦听器,但是在这种情况下,原始事件的源头和反应对象是相同的,所以它是好的。

这里有一个例子创建了一个数量的容器,其中一箱面板——不是可选的。

h = uix。HBox( 'Parent', gcf, 'Padding', 10, 'Spacing', 10 );
b = uix。BoxPanel( 'Parent', h, 'Padding', 10 );
c = uicontrol(“父”、b '字符串','点击我!”);
一个=轴(“父”,h);
[x, y, z] =山峰();
冲浪(x, y, z)
addlistener (b, findprop (b,“选择”),PostSet, @ (~, e)组(e.AffectedObject,“选择”,“关闭”));

TestingMatlab

大卫-任何评论特别点2)真的讨厌我。

我能以某种方式将一个侦听器添加到面板下面,这样当它得到选择触发”选择“属性“关闭”状态?

帮助将不胜感激。

TestingMatlab

你好大卫,谢谢你的回复。我很抱歉如果我没有把我的问题。

我理解GLT将位置回到下一个适当的事件的一个期望。

1)但我如何禁用面板选择,用户不能移动/选择他们吗?我设置的HitTest属性但还有其他的方法来防止用户选择面板(首先)?

2)面板(包含子轴)会自动选择当一个注释从轴被删除。我怎样才能停止这种行为呢?

大卫·桑普森

阿米特,可以选择GLT面板。也可以手动调整,暂时,例如,显式地创建,然后设置位置。然而,GLT将位置回到下一个适当的事件,例如,祖先调整。

相关:因为GLT孩子大小实际上都是属于父母,我们没有为孩子位置集被父母约束类型和属性。我可以建立这个,家长倾听孩子的立场,确定集不是由父母和反应,但这将是一个很多痛苦没有多少收获。

TestingMatlab

你好大卫,除了Zhangjun查询,就像你说的,2.2.2是否按预期运行。但是删除注释(使用编辑绘图工具栏)选择的父面板轴。

我还发现一个可以移动和调整大小的框板使用“EditPlot”工具栏。我可以设置“HitTest”属性“off”停止。有没有其他的方式停止呢?

我用“HitTest”暂时禁用选择面板(使用“EditPlot”工具栏),但父面板包含轴仍然会选择是否删除注释。我怎样才能停止这种行为呢?

大卫·桑普森

克利斯朵夫,请求文档的默认属性。我们正在考虑返工的文档,让它看起来像产品文档,但那是相当大的工作。

大卫·桑普森

Zhangjun,我介绍了2.2.2版本启用数据指针的变化模式,而无需使用额外的uicontainer。

例如:
> > h = uix。HBox( 'Parent', gcf );
> > =轴(“父”,h);
> >的情节(1:10,兰德(10 [1]))
打开数据光标模式,点击。2.2.2在工作,在2.2.1错误(如你的报告)。

2.2.2如果你看到一个问题,然后我将很感激如果你可以联系我通过我的外汇概要文件和发送复制步骤。

你可以选择上面的“看这个文件”来接收更新通知。

Zhangjun余

克利斯朵夫,你是对的。非常感谢。这个问题困扰了我几个星期。此外,我最好的收获是发现User_guide GUI布局工具箱。

克利斯朵夫

Zhangjun Yu >检查User_guide2_3.html的帮助。我认为它比颜色和传说,同样的问题你必须把uicontainer轴。我没有尝试但根据下面的评论,它应该工作,稍后将更新。

Zhangjun余

当我使用datacursor,轴在HBox收缩其在水平方向一半大小。这里有部分错误消息:

警告:错误发生在执行事件的侦听器回调
类uix.ChildObserver ChildAdded定义:
不存在公共财产的单位
matlab.graphics.shape.internal.AnnotationPane。

在uix错误。HBox/redraw (line 138)
的孩子。单位=“像素”;

错误uix.mixin.Container /组。脏(第129行)
现在obj.redraw() %重绘

在uix.mixin错误。容器/addChild (line 219)
obj。脏= true;

在uix错误。HBox/addChild (line 167)
addChild@uix。框(obj,儿童)

在uix.mixin错误。容器/onChildAdded (line 159)
obj。addChild (eventData。孩子)

错误在uix.mixin.Container > @(变长度输入宗量)obj.onChildAdded(变长度输入宗量{:})(51)行
childObserver ChildAdded, @obj。onChildAdded);

在uix错误。ChildObserver/addChild (line 109)
通知(obj ChildAdded, uix。ChildEvent (oChild))

在uix错误。ChildObserver/addChild (line 116)
obj。addChild (nChild oGrandchildren (ii))

错误在uix.ChildObserver > @ (~, e) obj.addChild (nChild e.Child)(第96行)
@ (~,e) obj.addChild (nChild e.Child));

在matlab.graphics.shape.internal.ScribeStackManager / createLayer错误

在matlab.graphics.shape.internal.ScribeStackManager / getLayer错误

在matlab.graphics.shape.internal.ScribeHost > findAnnotationPane错误

在matlab.graphics.shape.internal.ScribeHost / setPeerParent错误

matlab.graphics.shape.internal.ScribeHost误差

错误matlab.graphics.shape.internal.ScribeHost > @(年代,e) nDelayedReparent ()
在uix >。ChildObserver / addChild(第109行)
在uix。ChildObserver / addChild(第116行)
在uix.ChildObserver > @ (~, e) obj.addChild (nChild e.Child)(第96行)
在matlab.graphics.shape.internal.ScribeStackManager / createLayer
在matlab.graphics.shape.internal.ScribeStackManager / getLayer
在matlab.graphics.shape.internal.ScribeHost > findAnnotationPane
在matlab.graphics.shape.internal.ScribeHost / setPeerParent
在matlab.graphics.shape.internal.ScribeHost / checkPeer / nDelayedReparent
在matlab.graphics.shape.internal.ScribeHost > @(年代,e) nDelayedReparent ()

Zhangjun余

克利斯朵夫

这是一个很好的工具。我很欣赏的支持文档和示例。万博1manbetx

你可以在html文档中添加属性的默认值为在未来更新吗?

大卫·桑普森

托拜厄斯,我认为你是对的,在某种程度上有财产SelectionChangedCallback。我会做一些挖掘找出发生了什么。在那个地区有很多GLT1和GLT2之间,因为财产重命名和改变回调事件数据。

我试着遵循的原则是:
* GLT1 uiextras GLT2代码运行
*最小不兼容,没有非法,GLT2版本

托拜厄斯

感谢大卫回答。我的坏,我的意思是“SelectionChangedCallback”。我可能会跳过一个版本,但在2.1。我使用的版本,uix。TabPanelhas a property "SelectionChangedCallback" and in the current version it is "SelectionChangedFcn". Don't want to nit-pick, the issue just came up.

大卫·桑普森

当然搜索将产生一个结果——这个页面之后,Google爬虫的下一个访问!

大卫·桑普森

托拜厄斯,没有GUI布局工具箱TabPanel TabSwitchCallback或TabSwitchFcn类或属性。都有一个属性SelectionChangedFcn。

谷歌搜索TabSwitchFcn收益率没有结果。

托拜厄斯

你好,我真的很喜欢工具箱。但它似乎已经低到以前版本的向后兼容性。几分钟后,我发现了几个问题。有命令或选项的列表已经改变了吗?像TabPanel。TabSwitchCallback - > TabPanel.TabSwitchFcn。
这将是非常有用的。

杰森

伟大的工具!我想知道如果有任何优势使用盒子vs网格将UI组件。是一个更有效的比其他(cpu /内存wise) ?我计划创建一个相当复杂的GUI所以我希望尽可能有效地设计。

大卫·桑普森

泰德,文件交换吃了我的标签,但是你应该懂的。

大卫·桑普森

uibuttongroup处理选择而不是定位。通常的位置是固定的,但你可能想把uibuttongroup GLT容器内。

g = uibuttongroup(“单位”,“像素”、“位置”,[20 200 70],…
SelectionChangedFcn, @onClicked);
c (1) = uicontrol(“父”,g,“风格”,“radiobutton”,“弦”,“汤姆”,…
“单位”,“像素”、“位置”,45 190 20 [5]);
c (2) = uicontrol(“父”,g,“风格”,“radiobutton”,“弦”,“迪克”,…
“单位”,“像素”、“位置”,25 190 20 [5]);
c (3) = uicontrol(“父”,g,“风格”,“radiobutton”,“弦”、“哈利”,…
“单位”,“像素”、“位置”,[5 5 190 20]);

onclick功能(来源,~)
%做一些有用的东西
结束

uix。VButtonBox等处理定位而不是选择。然而,不难添加选择。

p = uipanel(“单位”,“像素”、“位置”,[0 0 200 70]);
g = uix。VButtonBox(“父”,p,“填充”,5,ButtonSize, 20 [200],…
“HorizontalAlignment”、“左派”);
c (1) = uicontrol(“父”,g,“风格”,“radiobutton”,“弦”,“汤姆”,…
“价值”,“回调”,@onClicked);
c (2) = uicontrol(“父”,g,“风格”,“radiobutton”,“弦”,“迪克”,…
“价值”,0,“回调”,@onClicked);
c (3) = uicontrol(“父”,g,“风格”,“radiobutton”,“弦”、“哈利”,…
“价值”,0,“回调”,@onClicked);

onclick功能(来源,~)
源。值= 1;%选择这个
集(c (c ~ =源),“价值”,0)%取消选择别人
%做一些有用的东西
结束

泰德•迪赫

我似乎不能得到uix。VButtonBox(or HButtonBox) to work with radiobuttons, in the sense of having the buttons linked like what occurs when using uibuttongroup. When I use the uix approach, the buttons act independently. If I place a uibuttongroup (with radiobuttons in it) inside a uicontainer which is then in a uix entity, I get the buttons to be linked, but their motion inside the uibuttongroup has the same old scaling problems with window resizing. Running 2016a.
是Gui布局工具箱与radiobuttons合作,如果是这样,谁能发布一个简单的例子。工具箱中所有的“按钮”例子简单的链接(独立)按钮,我发现没有一个显示radiobuttons有关。——谢谢!

科比

汤姆·赖特

kp

请忽略我之前的消息。这是由于一些问题在我的MATLAB的道路。

kp

我有一个问题与2.2.2 2.1.2和2016下,但不是2015 b。我在MATLAB得到这个错误消息:
没有公共财产matlab.graphics.primitive.canvas.JavaCanvas单位存在类。

我记得,我的代码用于在2016年2.1.2下工作。可能由于更新Java吗?

我想我可能已经发现了一个小错误,我找不到任何关于这些评论。

这关系到uix“标题”。BoxPanel,and I can demonstrate this bug using the included demoBrowser.m.

在我13”MacBookPro视网膜显示屏,标题是切断早期以“…”。:“选择一个德…”和“查看:L…”。再多的调整修正,并有足够的空间来显示整个标题。

运行相同的代码在Windows桌面non-retina显示正确显示了完整的标题。

谢谢。

大卫·桑普森

Sucheta,我不认为这个错误与GUI布局工具箱。请提交技术支持请求包括MATLAB版本细节和简单的复制步骤?万博1manbetx

Sucheta Sehgal

我得到以下错误在运行GUI脚本文件。

“错误使用matlab.ui.container.Panel /组
没有widthlimits属性面板上类。”

大卫·桑普森

2.2.2版本中,我添加了极其基本用法跟踪GUI布局工具箱。一旦每MATLAB会话,GUI布局工具箱报告工具箱版本,MATLAB版本,和操作系统。没有个人身份信息传播。跟踪是可选的,系统将提示您,但是我鼓励你参与帮助我们了解GUI工具箱的使用和布局规划在这个领域持续发展。

大卫·桑普森

2.2.2版本的GUI布局工具箱现在可用。这个小版本包括:
*支万博1manbetx持轴数据游标内所有容器类型
*改善指针管理flex容器

大卫·桑普森

Grzegorz,目前,GUI布局工具箱不支持不分大小写或部分匹配属性名或枚举字符串属性值。万博1manbetx我将考虑放松。

Verma Arti

我有问题在运行BEMacoustics工具箱的使用这个工具。
这是错误消息

使用uiextras错误。容器(第61行)
尝试运行使用、MATLAB图形对新的图形系统。
请重新安装。

如果有人可以指导我如何解决这个问题。

赛斯肯纳

谢谢你大卫,

它的工作原理。我想是类似于deploytool电池板的工作方式,他们最小化或最大化无论你点击标题栏,因为它感觉更用户友好。

Grzegorz利珀

我有一个问题与案例sensivity:
uiextras。HBox('parent', someHandle) adds the HBox to the figure children, not someHandle, without warning/error.

我花了一段时间去:
uiextras。HBox('Parent', someHandle) which works fine.

大卫·桑普森

修道院,变化将被包括在即将发布,这样你不需要把斧头放在一个容器只是因为你想使用游标的数据。你仍然需要传说和彩色的。

大卫·桑普森

赛斯,是的可以实现这种行为。

我开始在本周早些时候发布过程,因此这种变化将不计入下一个版本。

如果你想更改本地:
*设置TitleText set.MinimizeFcn回调
*管理使财产TitleText取决于是否MinimizeFcn是空的
*分离和再植TitleText redrawButtons点击后,以确保它不是选择

另一个问题是人们是否找到你建议的行为是直观的。

赛斯肯纳

有一个简单的方法来添加minimizeFcn回调的TitleText BoxPanel吗?这将使它更容易最小化和最大化一个面板,因为最小化按钮可以小,有时很难达到。

修道院鲁洛夫•

这个工具箱是伟大的。只是一个注意:文档提到使用uicontainer传说和彩色的情节显示正确;这似乎也使用datacursormode时是必要的。

修道院鲁洛夫•

胡安Henao

原谅我缺乏知识,我已经开发了一些相当复杂gui使用指南工具然后我看到了这个,哇,它有非常棒的功能。点:有图形版本的工具箱,在指南,或我必须学习代码吗?。
谢谢你的很棒的工作,继续!

大卫·桑普森

科比,是的,但如何以及何时是我们(MathWorks)正在研究。

科比

会有一个版本兼容的新应用程序设计师UI对象/图形吗?

d . Plotnick

太好了!

尼尔凯思内斯郡

我一直在使用GUI布局了几年,找到一个很好的工具。简单的问题:我可以配置编译后的应用程序运行Windows系统托盘后台进程?任何帮助表示赞赏。

基督教

在我们的一些代码重载一些容器的重绘()方法返回当前“大小”属性的容器。更新代码> R2014b以来,这导致大量输出到命令行只要这样一个元素是重绘。我在uix.mixin追溯到这两行。容器(lines 129 and 149), where the redraw() method is called without a semicolon to suppress output, clearly because no output is expected.

假设这不会破坏任何东西,可以简单地添加分号结束那些抑制输出行吗?

大卫·桑普森

Carsten,讨论uix和uiextras文档,2.2节“兼容版本1”。

如果您正在编写新代码,只需要在14 b和后然后使用uix工作。否则uiextras使用。

Carsten

谁能解释何时使用uix, uiextras resp。?

和的区别是什么?

大卫·桑普森

为了应对安装问题的报告,我做了一个快速测试。我下载2.2.1从文件交换和15 b和16个成功安装。我的设置是win64与当地插件目录中。我通过双击mltbx文件安装在当前文件夹视图的MATLAB桌面。

球赛

克莱门斯Nyffeler

我注意到,有时,如果我有一个在uipanel VBox, Matlab崩溃时关闭图。我可以复制崩溃也通过手动删除特定的罪魁祸首VBox。

我可以通过使用uix摆脱这个问题。代替uipanel面板。我这一个已知的问题或者是什么理由repalce uipanel uiextras / uix.Panel吗?

目前我还有Matlab崩溃的问题。我跟踪的问题,删除所有子对象图一个接一个。事故发生在删除最后子对象,这是又一个VBox图本身作为它的父类。

金融危机表现为一个“访问违例”“< unknown-module >”。我使用version 2.2.1 R2014b。

菲利普

你好大卫,

我试图使用GUI布局工具箱相结合的uicomponent Yair奥特曼和有问题的组合。
下面的代码工作,仍然把uicomponent成uipanel:

hf1 =图;
hvb1 = uix.VBox(“父”,hf1);
hp1 = uipanel(“父”,hvb1);
hjl1 = uicomponent(‘风格’,‘JLabel’,{“没有数据”},…
HorizontalAlignment, javax.swing.SwingConstants。中心,…
VerticalAlignment, javax.swing.SwingConstants。中心,…
“背景”,javax.swing.plaf.ColorUIResource (1,0,0));
集(hp1 hjl1,“父母”,“单位”,“归一化”,“位置”,[0 0 1 1]);

但是当我尝试使用直接与vbox uicomponent我必须调整图窗口得到正确的显示:

hf2 =图;
hvb2 = uix.VBox(“父”,hf2);
hvb2 hjl2 = uicomponent(‘父’,‘风格’,‘JLabel’,{“没有数据”},…
HorizontalAlignment, javax.swing.SwingConstants。中心,…
VerticalAlignment, javax.swing.SwingConstants。中心,…
“背景”,javax.swing.plaf.ColorUIResource (1,0,0));

有办法得到正确的行为,而不必把uicomponent放进一个额外的面板?

马库斯

对不起,但我认为mltbx文件并不在2015 b和2016下工作。我双击文件”GUI工具箱2.2.1布局。mltbx”和安装标志。我按下按钮“安装”,并同意条款。比没有发生后……

有人也有同样的问题吗?

实验后奥特曼

我只看到@Tanmay下面的评论,现在@David的建议。我刚刚上传的固定版本UICOMPONENT接受HG2(公司uiextras)容器作为父母,除了所有previously-acceptable父类型。

Ahmad透明丝织物

我下载mltbx文件,双点击它,仍然没有安装的迹象。我输入版本布局和我收到这个错误“警告:没有正确格式化的内容。“布局”m文件被发现。”Please help, I am using matlab R2015a for ubuntu.

大卫·桑普森

请确保您下载mltbx文件而不是zip文件。

安装工具箱,在当前文件夹视图中双击它。

检查是否安装工具箱,类型“版本布局”在命令提示符处,或启动插件管理器。

Ahmad透明丝织物

我试图在matlab r2015a安装工具箱,但没有迹象表明工具箱的安装。请帮助。

大卫·桑普森

去年年底有一些指针状态的报告在flex容器变得混乱。这个问题的处理相邻两脚规在不同容器之间的转换。就有一个固定在2.2.1版本中,释放。

如果你现在感兴趣的指针更改是如何协调的,看看uix.PointerManager。

莱昂纳多Araujo

成功了,大卫。现在这条线花0.06而不是0.28年代。非常感谢。

大卫·桑普森

对性能达·芬奇,回到你的问题。我想提醒大家重新排序使用属性内容布局内容,不是财产的孩子。

有一个讨论GLT文档的差异,但这是短暂的版本。孩子是垂直堆叠的顺序,通过MATLAB定义,并与大多数GLT用例无关。内容布局秩序和由GLT定义。

如果你重新排序通过孩子,MATLAB分离他们反过来(一个重绘),然后依次再植他们所有人(一个重绘)。如果孩子们GLT容器也可能* *每一步调整,因此重新绘制每个孩子。如果你细心,你会得到一切正确的布局。最后这些分离和接续将抹去你的大小,所以你需要重置这些太(另一个重绘)。

相比之下,当你通过内容重新排序,你会得到一个重绘,GLT自动排列尺寸给你。

> > b = uix。HBox( 'Parent', figure, 'Padding', 2, 'Spacing', 2 );
> > 2 = 1:30,uicontrol(“父”,b);结束% 30重绘
> > b。宽度=兰德(大小(b。内容));% 1重绘
> >[~,我]=(兰德(大小(b。内容)));
> > b。内容= b.Contents(我);% 1重绘
> > b。孩子= b.Children(我);% 60重绘,宽度都是1

大卫·桑普森

此时细胞生成不支持,因为我觉得它比起API万博1manbetx。你必须坚持嵌套容器。

莱昂纳多Araujo

我认为这行不通,大卫,因为每一行有不同的列数。有什么方法吗?

大卫·桑普森

莱昂纳多,我认为这对于将来的版本。以下更改将uix.mixin.Container:
*定义一个属性RedrawMode控制是否要重绘
*在set.Dirty,添加一个条件重绘只有RedrawMode‘上’
*在set.RedrawMode,当设置为“上”,重绘如果脏(见onFigureChanged)

我看出你正在使用一个VBox HBoxes。网格为你工作吗?

莱昂纳多Araujo

谢谢你的回答,大卫。

有可能禁用这些重绘?

这个代码行正在采取更多的时间,0.28年代:

vbox10。孩子= [edit_description_hbox edit_manager_hbox edit_brokerage_hbox……edit_strategy_group_hbox……edit_total_value_day_trade_hbox……edit_quantity_price_hbox……
edit_account_hbox edit_client_hbox edit_liquidity_date_hbox edit_deal_time_hbox edit_deal_date_hbox];

大卫·桑普森

莱昂纳多,我认为你的意思是你重新排序的内容,而不是孩子,尽管这两个密切相关。

有一些性能改进的空间。在你的例子中,GLT验算HBox内容每个尺寸两次——当在默认大小,添加新的项目,一旦当新项目的大小最终大小,而这有可能计算出大小只有一次。这可以通过选择临时禁用重绘,尽管你会记得把它们。另一种解决方案是让一个可配置的默认大小为新项目。

注意图形系统实际上不会重新绘制两次当你改变一切的属性。这通常是更昂贵的比计算大小。

出于兴趣,你有多少GLT容器在每个层面上,和一个重绘有多长?

莱昂纳多Araujo

嗨,大卫,

我想做一个非常动态GUI,所以我经常插入或取出vbox的一些组件。例如,很多次我想插入一个hbox vbox当用户按下一个按钮。当我的父母hbox vbox, hbox插入最后的孩子,但我希望它是第三个,例如。所以我用的孩子属性vbox,改变其组件的顺序。

我意识到这个过程有点慢,消耗近20%的总执行时间的函数。你有什么快的方法或者你打算提高这一过程的性能吗?

感谢和祝贺这个神奇的工具。

胡里奥•加西亚

大卫·桑普森

亨利,你发现了一个微妙的错误。如果第一个改变ForegroundColor是黑色那什么也不做。

我下一个版本将包含一个修复。的前两行BoxPanel构造函数后,请添加:
obj。ForegroundColor = ForegroundColor;

亨利。

非常感谢你的支持。万博1manbetx问题是,我总是试图ForegroundColor属性设置为黑色(0,0,0)。然而,输入textcolor仍然是白色的。今天我尝试(0.1,0.1,0.1),而不是和它工作得很好,即使是灰色而不是黑色。

大卫·桑普森

ForegroundColor亨利,都有一个属性。ForegroundColor标题文本颜色变化。写成BackgroundColor控制标题背景颜色。HighlightColor和ShadowColor控制边界的颜色。

亨利。

你好大卫,谢谢你这个伟大的工具箱!

你能请给我提示,如何改变标题的ForegroundColor BoxPanel ?自2014年版本我仍然可以设置的属性“TitleColor”,从而改变的背景颜色TitleBox但不是“ForegroundColor”了,用来改变输入textcolor的标题。

亨利。

大卫·桑普森

亚历克斯,我仍然在confused-pointer修复。这将包括在未来版本中,可能在二月。

亚历克斯Perrone

大卫,就更新到最新版本(2016年1月12日)。我发现一个鼠标光标的问题,调整一个标签“低于”,不再发生。然而,发布不正确的鼠标光标的问题让“困惑”的扩张箭头显示在相邻的flex容器,随后陷入作为扩张箭头。这意味着是正确的?感谢你这个工具箱。

Darya Shcherbakova

大卫,非常感谢你的帮助!现在工作完美:)

劳伦特

大卫·桑普森

忽略了第三和第四行代码在我之前的文章。

大卫·桑普森

引吭高歌,看看按钮盒类,HButtonBox VButtonBox。这些允许您指定的宽度和高度,孩子和孩子垂直和水平对齐。一个常见的使用是一排按钮底部的一个对话框。

在你的情况下,把按钮的大小你要控制明确到每一个按钮盒。

f =图();
g = uix。网格( 'Parent', f, 'Padding', 10, 'Spacing', 10 );
n = 4;
2 = 1:10,s {2} = deblank (evalc('为什么'));结束
b = uix。HButtonBox(“父”,g, ButtonSize,[100] 20日);
uicontrol(“父”、b '字符串',' MATLAB ');
uicontrol(“父”,g,‘风格’,‘文本’,‘HorizontalAlignment’,……
“对”,“弦”、“印第安纳琼斯:“);
uicontrol(“父”,g,‘风格’,‘文本’,‘HorizontalAlignment’,……
“对”,“弦”、“三种颜色:“);
b = uix。HButtonBox(“父”,g, ButtonSize,[100] 20日);
uicontrol(“父”、b“字符串”,“模型”);万博1manbetx
uicontrol(“父”,g,“风格”,“列表框”,“弦”,…
{“夺宝奇兵”,“世界末日的庙”,“最后的十字军东征”});
uicontrol(“父”,g,“风格”,“列表框”,“弦”,…
{“蓝”,“白色”,“红”});
g。宽度= (1,1);
g.Heights (1) = 20;

亚历克斯Perrone

引吭高歌,你不能让额外的面板,喜欢有一个按钮,不是很宽,你可以在一个HBox:有3个板,中间。然后你可以让中间的一个固定大小(小),把按钮。唯一的问题是(我相信)唯一的三个可以使用1填满剩下的大小宽度,所以最好有两个面板和按钮在左边或右边,而不是集中。

Darya Shcherbakova

你好大卫,

谢谢你的快速响应。我现在清楚发生了什么。

为了我的程序(用于后处理一些数据),我有很多组件在网格:复选框、文本框和简单的文本——他们的大小取决于他们自己的内容或网格列的宽度:例如我左边的文本标签和对应的文本框右边的网格。

然后我想添加一个按钮,它集中在一个面板上方网格(面板和网格有相同的VBox家长,如面板的宽度=所有网格列宽度的总和)。但我真的不想有这样一个广泛的按钮(因为我的网格很宽),我不能找到一个方法来解决它。

大卫·桑普森

引吭高歌,GUI工具箱布局容器控制设置其内容的位置。对于一个网格,将填补内容的细胞。也许你可以解释为什么在特定的情况下,你需要覆盖的一些大小。

Darya Shcherbakova

你好,

我编程GUI使用Matlab GUI工具箱和默认布局组件。我注意到如果我使用uicontrol按钮或弹出uix的父类。网格或uix。面板and set the size of Pushbutton or popup components not to be equal to the width of a Grid column or Panel (by specifying a Position property manually for these components by changing the width and height only), then when running my program it still resets to the sizes of a Grid and Panel components. If I insert a "keyboard" into the code and start debugging my code gradually, the sizes of PushButton and popup are specified correctly based on their own Position property and don't change when GUI window program runs till the end.

我不是很有经验在Matlab的GUI编程。我想这个问题我自己的,我似乎不理解这种行为的来源。

可以与GUI工具箱布局组件的定义,我不知道的?

大卫·桑普森

亚历克斯,对不起我误解了你的错误报告,因为我没有向下滚动代码以外的截图。认错。这个问题是因为我检查指针是否高于任何分配器但不是分配器是否之上。昨日发布的2.2版本,,采用新技术来检测当指针分配器,和修复这个问题。

亚历克斯Perrone

大卫,哇,这是一个漂亮的flex容器保持同步的方法,不知道你可以听的变化。但是,我不关心使他们保持同步。问题是你可以神秘地改变一个flex边境*一*选项卡的一个选项卡。一个不应该能够这样做。然而,它可能与Gui布局工具箱和uitab互动,后者的原因我用我的发布日期为2015年6月24日。我送你一个屏幕截图邮件说明这个问题。请做任何你想做的视频(如发布公共地方,这个网站总结不允许发布视频,这就是为什么我做了截图要点)。

大卫·桑普森

亚历克斯,如果我理解正确的话,你的flex容器在多个标签和你想保持同步。

目前没有一个事件在flex容器通知更改内容的大小。作为一个解决方案,你可以对flex容器的大小变化的内容。例如:

f =图();
p = uix。TabPanel( 'Parent', f );
h1 = uix。HBoxFlex( 'Parent', p, 'Padding', 10, 'Spacing', 10 );
b1 = uicontrol(“父”,h1, '字符串',' 1 ');
uicontrol(“父”,h1, '字符串',' 2 ');
h2 = uix。HBoxFlex( 'Parent', p, 'Padding', 10, 'Spacing', 10 );
b2 = uicontrol(“父”,h2, '字符串',' 3 ');
uicontrol(“父”,h2, '字符串',' 4 ');
addprop (h1,“ContentsSizeChangedListener”);
h1。ContentsSizeChangedListener =事件。侦听器(h1。内容,…
SizeChanged, @(~ ~)组(h2,“宽度”,h1.Widths));
addprop (h2,“ContentsSizeChangedListener”);
h2。ContentsSizeChangedListener =事件。侦听器(h2。内容,…
SizeChanged, @(~ ~)组(h2,“宽度”,h1.Widths));

亚历克斯Perrone

同样上一次发布的关于鼠标箭头扩张,虽然看起来像一个单独的问题:当有一个可调边境一个选项卡上,您可以调整这从另一个选项卡。我设置标签不正确,还是……吗?请在这里看到的代码和解释:
https://gist.github.com/alexperrone/2970592e19e3479ecba6

亚历克斯Perrone

大卫,事实上问题分为:
*指针被邻近的flex容器之间的过渡
当我徘徊在边界附近的HBoxFlex VBoxFlex,这就是鼠标光标卡住一个箭头。如果我改变一个不弯曲,不存在冲突的箭头方向显然也不困。我有可复制的代码和一个视频捕捉,我可以直接发送到你。

大卫·桑普森

亚历克斯,我有一些问题在这方面报道:
*指针错误在图窗口停靠,修复很快被释放
*指针错误在Java组件在flex容器(零星)——在调查之中
*指针被邻近的flex容器之间的过渡——确定

的问题是很有帮助的知道你看到落入任何上面的桶中,也无论他们是指针路径依赖或依赖速度。

亚历克斯Perrone

每当我将鼠标悬停在adjustible uix边境。HBoxFlex,the mouse cursor changes to the expansion arrow and stays as an arrow everywhere throughout the GUI and never returns back to the normal mouse cursor. Any ideas?

像很多人一样,GUI目前相当复杂,将尝试最小可再生的例子如果不容易修复或检查。使用R2014b与2015年6月版的Gui工具箱布局。谢谢你!

Alexander Stepanov

小改进建议——就好了如果可以单独设置每个选项卡的宽度,以防你必须将标签与短期和长标题。

Alexander Stepanov

谢谢你,大卫。是的,你是正确的,[1 1 parentPixelPos (3:4)]。

我设置postition像素,而不是标准化的单位,提供额外的填充内容。例如如果你试着设置javacomponent(0, 0, 1, 1)标准化地位的孩子uipanel一些标题,你会注意到它显示的标题,完全隐藏它。像素位置设置后,我回复单位规范化,因此调整工作得很好。是的,填充大小改变时略有调整,但这并不明显。

我猜的正确方式将按照你的建议的确连接SizeChangedFcn回调。

我必须使用地位我使用自己的布局管理器很广泛,微调uicontrol布局面板内部创建uix工具箱。我将看SizeChangedFcn添加到它。现在我实现了一个解决方案,当添加一个孩子(uix。VBoxor similar) to a TabPanel tab, switches briefly to that tab and switches back. That seems to solve the issue for me:

%面板是父母,我们添加了一个孩子(比如uix.VBox)
如果isa(面板。家长,uix.TabPanel) %的工作区位置布局GUI工具箱中的计算问题
tabPanel = panel.Parent;
lastSelection = tabPanel.Selection;

[~,印第安纳州]= ismember(面板,tabPanel.Contents);%注意:内容、与孩子,正确排序
tabPanel。选择ion = ind; % Temporarily select the tab. From now on position should be determined correctly

tabPanel。选择ion = lastSelection; % Restore selection
结束

大卫·桑普森

亚历山大,你碰到许多有趣的问题,我想解决。

首先,一个小点。在您的代码中,你不想被设置的位置你的Java组件的容器在其父容器的位置。你可能意味着javacomponent (jPanel, [1 1 parentPixelPos (3:4)], hSecondPanel)。不管怎样,更有趣的是……

javacomponent(名称、位置、父母)设置父然后* *设置位置。自从GLT容器布置内容时补充道,随后将位置彻底摧毁GLT位置。事实上,我们建议你不要GLT容器的内容自己设定,但是通过使用javacomponent,不经意间你可能会这样做。

相反,您可以创建Java组件解除父物体,javacomponent(名称、[0 0 1 1][]),然后设置其父母作为第二步。

确实,我们不能保证GLT电池板的没有内容的位置。因此不能保证getpixelposition未经选择的内容选择后会返回相同的结果。无论如何它是最有可能,你希望你的Java组件是一个合理的大小不仅最初,但随时其母尺寸。为此,要么把它放在GLT容器(注意点)或把自己的使用父容器的SizeChangedFcn布局功能。

总之,我将取代过去五行代码类似:
[jPanel, cPanel] = javacomponent (javax.swing。JPanel, [0 0 1 1], []);
jPanel)。集Border( javax.swing.BorderFactory.createLineBorder( java.awt.Color.blue ) );
集(hSecondPanel cPanel,“父母”,“单位”,“归一化”,“位置”,[0 0 1 1])

最后,直接与我联系,这是firstname.lastname@mathworks.co.uk。

Alexander Stepanov

很明显,这不仅仅是关于@getpixelposition。你会面临同样的问题如果你试图让位置使用其他方法,如简单:parent.Position。显然是唯一的解决方案,涵盖所有情况下即是定义预处理和后设听众位置属性……

Alexander Stepanov

简而言之,你不能依赖@getpixelposition结果除非当前选中选项卡。我能想到的解决方法,会遍历所有祖先在调用@getpixelposition找到所有父标签页面板之前,在他们每个人选择相应选项卡,恢复之后选择。这是很丑陋的,会导致很多闪烁的UI。

Alexander Stepanov

你好大卫,

我的问题(标签返回不正确的像素位置)与我设置的位置——两种方式(通过javacomponent及其uicontainer对等)。问题是在确定正确的位置。请找到一个非常简单的片段复制问题(对不起,不知道你所指的文件交换的联系形式——你指的“联系我们”形式联系Mathworks ?)

下面的代码片段是。第一组运行命令,然后切换到第二个选项卡,然后剩下的两个命令运行。你会看到一个整洁的蓝边界跨越整个选项卡的内容。

和繁殖问题——运行所有的命令,然后切换的选项卡。你不会看到任何边界。然后检查parentPixelPos向量——这是什么问题。

hFig =图();
hTabPanel = uix。TabPanel('Parent', hFig);
uicontainer(“父”,hTabPanel);
hSecondPanel = uicontainer(“父”,hTabPanel);
jPanel = javax.swing.JPanel;
jPanel.setBorder (javax.swing.BorderFactory.createLineBorder (java.awt.Color.blue));

parentPixelPos = getpixelposition (hSecondPanel);
javacomponent (jPanel, parentPixelPos hSecondPanel);

大卫·桑普森

丹尼尔,你能请联系我直接与完整的复制步骤?

我自己不使用多个显示器,所以可能会有部分的工具箱不处理这个问题。我很高兴在这工作,我很感兴趣的其他用户是否有任何问题与多个显示器。

我计划这个月发布。你指的具体代码(uix.LocationObserver)已经被移除。不过我想要你的复制步骤,这样我们可以添加一个测试,测试套件。

丹尼尔Lyddy

我设置一些并排windows图使用这个工具箱,在一个实例化新的图时,默认是停靠。如果我出坞图,发送一些情节窗口,并执行“drawnow”命令,我得到以下java错误:

警告:执行回调时发生错误:
使用uix错误。LocationObserver /更新/ getFigurePixelPosition(第239行)
Java异常发生:
java.awt。IllegalComponentStateException:组件必须显示在屏幕上
确定其位置

在java.awt.Component。得到LocationOnScreen_NoTreeLock(Unknown Source)

在java.awt.Component。得到LocationOnScreen(Unknown Source)

在uix错误。LocationObserver /更新(第197行)
像素= getFigurePixelPosition (…

在uix错误。LocationObserver / onSizeChanged(第305行)
obj。更新(源)

错误在uix.LocationObserver > @(变长度输入宗量)obj.onSizeChanged(变长度输入宗量{:})(第123行)
cbSizeChanged = @obj.onSizeChanged;

我不是一个Java程序员。这个错误消息感觉应该我做什么?

注意,图出坞通常导致它出现在我的监控;我有两个。MATLAB GUI是运行在我的左边的班长。我在Windows 7上运行R2014b企业,服务包1。

这就是我当我在MATLAB命令行中键入“opengl信息”:

> > opengl信息
版本:“4.4.0”
供应商:“英伟达公司”
渲染器:“方形住宅区K2100M /作为PCIe / SSE2”
MaxTextureSize: 16384
视觉:“视觉0 x07 (RGBA 32位(8 8 8 8),Z深度……”
软件:“假”
万博1manbetxSupportsGraphicsSmoothing: 1
万博1manbetxSupportsDepthPeelTransparency: 1
万博1manbetxSupportsAlignVertexCenters: 1
扩展:{293 x1电池}
MaxFrameBufferSize: 16384

大卫·桑普森

亚历山大,一些评论。

“你需要使用javacomponent像素的位置。”Actually, you don't. Instead, position by setting Parent, Units and Position of the uicontainer peer (second output argument of javacomponent). The Java widget position on screen is automatically synchronized with that of its peer container. Or just set Parent to a GUI Layout Toolbox container and let it manage its children's Units and Position.

> > t = uix。TabPanel( 'Parent', gcf, 'Padding', 10 );
> > [s、c] = javacomponent (javax.swing。JSpinner”);
> > c。父母= t;

如果你想给我复制步骤之前和之后的立场是不同的选择一个选项卡中,请通过文件交换联系方式,我很乐意提供更多的反馈。

Alexander Stepanov

我现在面临着不同的问题。我需要像素位置uix对象(你需要使用@javacomponent像素位置,一般来说如果你想要完全控制你的元素是如何制定内部)。我也使用uix.TabPanel。问题是,位置不正确,直到你切换到选项卡,控制,至少一次(!)。甚至drawnow没有帮助。

例如,这是之前我得到开关位置选项卡(错误的):

K > > get(父母,“位置”)
ans =
1 1 1192 795

这是我得到的位置后我切换选项卡(正确):

K > > get(父母,“位置”)
ans =
1 747 1192 30

明显的垂直位置都是错误的。所以我必须通过编程的方式浏览所有选项卡之前可以继续呈现布局,否则我所有的控制是不可见的,因为他们已经完全错误的位置。v1工具箱中没有这样的一个问题。

Alexander Stepanov

大卫,我就可以用的方法。现在我uix砍。容器(basically using similar code as in uix.Empty + extra onParentColorChanged call to initialize), but applying DefaultUicontainerBackgroundColor probably makes more sense than inheriting from parent.

大卫·桑普森

亚历山大,MATLAB图形不能扩展到non-builtin违约系统类,所以我们不能支持组(0,“DefaultHboxBackgroundColor”)。万博1manbetx

然而,我们可以决定应用DefaultUicontainerBackgroundColor和/或DefaultUipanelBackgroundColor新的uix亚型。人们是怎么想的?

我不认为推断(uix)容器默认从图违约时适当的有一个形成机制(平原)容器的违约。

大卫·桑普森

亚历山大,uix。空background color initialization, you are right: I need to call onParentColorChanged, although this should be guarded with if ~isempty(obj.Parent).

Alexander Stepanov

实际上,甚至uix。空has a problem. It sets the listener which handles subsequent background color changes, but it does not initialize the background properly when created. Makes sense to add onParentColorChanged(obj) call at the end to do this. But more importantly, all other uix components should do this as well.

Alexander Stepanov

我猜你是意识到这个问题,因为uix。空has explicit code to handle it: event listeners and corresponding onParentChanged / onParentColorChanged callbacks, which set uicontainer background to match parent. Why is it not done for any other uix objects, e.g. in uix.mixin.Container?

Alexander Stepanov

首先,谢谢你的伟大的工具箱!

我有一个问题,默认背景颜色。我最近升级到R2015b,以及Matlab Windows 2008服务器上运行。显然这种组合结果在Matlab与怪异pink-ish背景初始化所有数据((0.94,0.94,0.94)),而所有其他UI组件是深灰色的。我可以处理,只需设置:

集(0“DefaultFigureColor”[214211206] / 255);

这适用于所有的数据我创造。然而直接从matlab.ui.container.internal.UIContainer uix对象继承,这导致pink-ish背景相同。所以我必须为每个新的背景uix我创建的对象。是否有办法让它我尊重全球背景颜色设置吗?

Tanmay Rajpathak

谢谢你大卫,我建议作者。与uix.Grid我面临一个问题。我策划12饼图,有太多的空白空间在每个网格,即使我间距设置为零。你能提出一个解决方案吗?

谢谢

亚当

Tanmay - >我通常uicomponent嵌入到父母uipanel没有标题或边界,然后父布局,然后将处理面板布局好。

如。

hSliderPanel = uipanel (…)
hSlider = uicomponent(‘风格’,‘JSlider’,…);
集(hSliderPanel hSlider,“父母”,“单位”,“归一化”,“位置”,(0 0 1 1);

我不想讲太多细节,因为这有点外评论这个特定领域的工具箱,但这是我使用的类型设置。我以前没有使用过filechooser,但我认为你应该能够做类似的事情。

关于non-figures条件的做法,其实我只是抑制警告因为育儿小组工作,甚至直我想,但不是与布局,因此上面的解决方法。

大卫·桑普森

Tanmay,进一步调查uicomponent的代码,我看到:
1。医生说只有数据支持作为父母,但是代码试图支持uicontainers 万博1manbetxuipanels uitabs。
2。检查有效的父类名是字符串比较,而不是通过isa。这就是为什么它拒绝GLT容器,uicontainer子类。

请作者添加支持HG2 uicontainer子类通过检查i万博1manbetxsa (hParent matlab.ui.container.Container”)。这是一个无证类,但这应该让它更不是作者的吸引力!

大卫·桑普森

uicomponent Tanmay,我不熟悉,但我只是下载运行您的复制步骤。我看到一个警告,设置父uicomponent的容器,而不是一个图不支持:万博1manbetx

警告:Non-figure父——使用指定父的图作为组件的家长

Tanmay Rajpathak

亚当——是的。你怎么使用它呢?在HBox并不承认UIComponent设置宽度。这并不工作,

ImagePanel = uix。面板('Parent', InfoTabPanel, 'Background', [1 1 1], 'Padding', 10);
ImageBox = uix。HBox('Parent', ImagePanel);
uix。ImageBox空(“父”,“背景”,[1 1 1]);
uicontrol(‘风格’,‘文本’,‘父’,ImageBox,“弦”、“GSR”);
uicomponent(‘风格’,‘filechooser’,‘父’,ImageBox);
uix。ImageBox空(“父”,“背景”,[1 1 1]);
集(ImageBox,“宽度”,[20 50 20 200],“间距”,5)

Tanmay Rajpathak

因为设置宽度不承认UIComponent

亚当

大卫- >我将试图组建一个简单的例子,并不包括所有我的生产代码的依赖关系。

Tanmay - >你说Yair奥特曼的uicomponent文件交换提交吗?如果是这样那么我经常使用这个工具箱成办嵌入java滑块。

uicomponent只是扩大uicontrol所以不应该以任何方式不符合这个工具箱,尽管有一些缺陷与结合java组件布局需要避免。

大卫·桑普森

亚当,你能请联系我直接和简单的复制步骤,这样我们可以调查。

Tanmay Rajpathak

谢谢你大卫,我与TabPanel分规有问题,但这对我来说并不是一个真正的问题。我找不到显示设置。一件事会让这个工具箱甚至更为强大的是,如果你可以用它结合UICOMPONENT工具箱。有什么方法吗?

亚当

一个优秀的工具箱,我倾向于使用更多的指导现在的新UI。

然而,我似乎有一个反复出现的问题用右边的面板边缘没有呈现在很多情况下。这似乎是只有当我使用1变量大小的面板。如我现在的界面有三个板与1宽度都坐在在一个布局。如果我将图宽度设置为特定值呈现良好,但与大多数宽度我右手边的面板(加上面板在这些3)不渲染。

这似乎可以解决的,如果我使电池板固定大小而不是变量虽然这是相当限制。

任何人有这个问题或知道它可能会导致什么?

大卫·桑普森

Tanmay,我希望这个问题与使用Windows显示设置其他超过100%。(检查控制面板>外观和个性化>显示。)你能请确认吗?

有一些变化在MATLAB R2015b相关支持high-DPI显示。万博1manbetx
http://uk.mathworks.com/help/matlab/creating_guis/dpi-aware-behavior-in-matlab.html

因此,我需要做出一些改变BoxPanel TabPanel,并希望在未来几周。您所做的更改将会停止错误但是你可能会注意到,TabPanel两脚规看起来不完全正确。

Tanmay Rajpathak

找到了解决方案:
改变916行
:jData = repmat (jMask (5), (tabDivider.Position (4) 1]);

:jData = repmat (jMask(5),(轮(tabDivider.Position (4) 1]);

Tanmay Rajpathak

错误使用repmat
复制的因素必须是整数的一个行向量或整数标量。

在uix错误。TabPanel/redrawTabs (line 916)
:jData = repmat (jMask (5), (tabDivider.Position (4) 1]);

在uix错误。TabPanel/redraw (line 673)
obj.redrawTabs ()

错误uix.mixin.Container /组。脏(第144行)
现在obj.redraw() %重绘

错误uix.TabPanel /组。TabTitles(第563行)
obj。脏= true;

错误FieldMaster(第134行)
FieldTab。TabTitles ={“刀”,“一点”,“运行”,“沉闷”};

Tanmay Rajpathak

这并不为R2015b工作。我得到错误使用repmat出于某种原因。

日本胜利公司

约翰内斯-我认为你描述的问题是由于一个已知的MATLAB的问题。对问题的描述看到的错误报告:

//www.tianjin-qmedu.com/万博1manbetxsupport/bugreports/1293244

为我工作的简式修复(假设你是编译为windows)是添加这一行代码和编译:

javax.swing.UIManager.setLookAndFeel (“com.sun.java.swing.plaf.windows.WindowsLookAndFeel”)

约翰内斯

嗨,另一个问题出现在创建一个可执行的。所有的按钮错过他们的境界。文本显示和我也可以点击按钮本身是无形的。我有什么地方做的不对吗?

约翰内斯

大卫,非常感谢!这解决了我的问题。

大卫·桑普森

约翰,请看看2.3节“彩色和传说”的GUI工具箱布局文档。请集团与轴在uicontainer插图。

约翰内斯

我遇到了一些问题在uix传说。我更新了我的软件Matlab 2014 - 2015 b,因此uix代替uicontrol使用。一些修改后看起来和以前一样漂亮。然而,它不可能显示传说在一个正确的方法。我使用相同的代码但传说并不显示在右情节虽然提供正确的斧柄。相反,它作为一个单独的HBox所示我的阴谋在相应的面板GUI。任何想法,什么可能会出错吗?谢谢你的帮助!

15要

你好我怎么使用这个编辑我的GUI .fig文件吗?

Vinh见鬼

我可以创建一个面板包含一个与许多uitabs uitabgroup吗?

大卫·桑普森

亚历克斯,请审查发布说明,简要介绍的功能被添加的释放。
//www.tianjin-qmedu.com/help/matlab/release-notes.html

有各种新特性和性能改进包括一个新的R2015b“MATLAB执行引擎”。

对于GUI布局工具箱(v2),您可以从任何释放R2014b访问所有功能。

亚历克斯Perrone

我使用的当前版本与Matlab工具箱2014 b。这个工具箱而言,有什么引人注目的好处升级到2015或2015 b Matlab ?如速度改进,会影响Gui布局在更新的Matlab工具箱版本,或额外的特性。

大卫·桑普森

艾米,你的问题是一个图形的问题,而不是一个GUI工具箱布局问题。情节很方便但是它有副作用包括轴ButtonDownFcn清算。几个建议:
1。编写一个低级别回调函数,不使用阴谋
2。使用轴事件而不是轴调ButtonDownCallback

这里有一个例子# 1:
> > =轴();
> > l =情节(0:10,兰德(11));
> >。ButtonDownFcn = @(~ ~)集(l, YData,兰德(11));

安迪Goessling

我想实现一个VBox固定高度的孩子(a)其次是成比例的两个孩子(b, c)。为固定高度的孩子(a)我想设定的高度是任何所需的最大高度(a)的儿童。我写了一个函数,它是通过儿童和通过child.Extent跟踪所需的高度。唯一的问题是,我的生活我不能找到一种方法来确定一个面板将增加多少高度(标题+边界)呈现其内容之前。我知道如何使用hgconvertunits计算这个小组已经呈现之后,而不是之前。什么好主意吗?

艾米Brisben

你好,我是享受改革我们的GUI使用你的工具箱。不过,有一个问题:是否可以更新轴没有坐标轴对象删除和重新创建吗?(即demoBrowser的方法。m和下面列出的评论)。我的问题是,这个轴有“ButtonDownFcn”,我希望能够重用,所以我不明白为什么我应该删除的对象。代码示例:

%声明对象
句柄。dp = uix。BoxPanel( 'Tag', 'dataPlot', 'Title', 'Data Plot', 'Parent', handles.gui.leftDataBox);
句柄。plotp = uipanel(“父”,handles.dp);
句柄。handles.dp Data_plot =轴(‘父’,‘ButtonDownFcn’, @Data_plot_ButtonDownFcn,…);

…%(创建数据);这将显示正确但不是第一次的时间。

次要情节(handles.Data_plot);
情节(数据、“线宽”line_thickness);

我试图将“次要情节”命令替换为下面的线(基于评论我读过),但这并没有帮助。

集(gcf, CurrentAxes handles.Data_plot);

提前谢谢你,艾米

大卫·桑普森

科林,h (1: n) = uix.HBox(…)创建一个单一HBox和一系列1)×(n的处理与每个元素指向同一HBox h。如果你想创建多个盒子你需要这样做在一个循环中。

科林

遇到困难,uix对象的数组。
我想做的;

问= 40;
v = uix.VBox(“父”,图);
h(1:问)= uix.HBox(“父”,v);
标签(1:问)= uicontrol(“风格”,“编辑”,.....);
值(1:问)= uicontrol(“风格”,“编辑”,....);

因为我= 1:问
集(标签(i),‘父’,h (i),设置其他属性)
集(h值(i),‘父’,(我),设置其他属性)
结束

内容/ VBox的孩子属性只有一个HBox对象。
设置父属性内Hboxes循环似乎并没有
工作,设置循环内一切通过蛮力。是
空的对象可以是预分配吗?

科林

路加福音Plausin

Sid

关于错误的HButtonGroup post - 2014 b中的对象世界:

捷径我最终使用是简单地创建一个堆在VBox / HBox设置复选框,然后控制外观和功能使用一个单独的回调。请见下文:

tabpanelMods()函数

关闭所有
h =图();

mainPanel_selectDurationPanel_VBox = uix.HBox (…
“父”,h,…
“写成BackgroundColor”, (0.9375 0.9375 0.9375),……
“填充”,5,…
“间距”,5);


cb (1) = uicontrol (…
“风格”,“复选框”,…
“父”,mainPanel_selectDurationPanel_VBox,…
“字符串”,“天”,…
“回调”,{@bselection h});

cb (2) = uicontrol (…
“风格”,“复选框”,…
“父”,mainPanel_selectDurationPanel_VBox,…
“弦”、“星期”,……
“回调”,{@bselection h});

cb (3) = uicontrol (…
“风格”,“复选框”,…
“父”,mainPanel_selectDurationPanel_VBox,…
“字符串”,“月”,…
“回调”,{@bselection h});

cb (4) = uicontrol (…
“风格”,“复选框”,…
“父”,mainPanel_selectDurationPanel_VBox,…
“字符串”,“6个月”,…
“回调”,{@bselection h});

cb (5) = uicontrol (…
“风格”,“复选框”,…
“父”,mainPanel_selectDurationPanel_VBox,…
“弦”、“1年”,…
“回调”,{@bselection h});


cb (6) = uicontrol (…
“风格”,“复选框”,…
“父”,mainPanel_selectDurationPanel_VBox,…
“字符串”,“所有!”,…
“回调”,{@bselection h});


函数bselection(源、callbackdata h)

cb_name = source.String

setappdata (h, DurationName cb_name)

开关cb_name
例“天”
cb (1)。值= 1;
(2)。值= 0;
(3)。值= 0;
cb (4)。值= 0;
(5)。值= 0;
cb (6)。值= 0;

例“星期”
cb (1)。值= 0;
(2)。值= 1;
(3)。值= 0;
cb (4)。值= 0;
(5)。值= 0;
cb (6)。值= 0;

中“月”
cb (1)。值= 0;
(2)。值= 0;
(3)。值= 1;
cb (4)。值= 0;
(5)。值= 0;
cb (6)。值= 0;

例“6个月”
cb (1)。值= 0;
(2)。值= 0;
(3)。值= 0;
cb (4)。值= 1;
(5)。值= 0;
cb (6)。值= 0;

案例1年的
cb (1)。值= 0;
(2)。值= 0;
(3)。值= 0;
cb (4)。值= 0;
(5)。值= 1;
cb (6)。值= 0;


例“! ! !”
cb (1)。值= 0;
(2)。值= 0;
(3)。值= 0;
cb (4)。值= 0;
(5)。值= 0;
cb (6)。值= 1;
结束

%希望可以使用setappdata能力设置额外的信息
%由其他函数访问。使用getappdata (h, DurationName)在不同的函数
%得到时间的价值,最初设置为例。
结束
结束

它是穷人的蛮力解决方案,但它的工作原理。中提到的例子,简单地使用setappdata / getappdata功能提取选择变化。

HTH。

日本胜利公司

相当长一段时间我已经遇到一个错误,我无法摆脱,想知道如果任何人有洞察力。与有关联的错误是一个gui布局图包含的元素表(创建通过场上。所有工作正常,直到我有gui运行,让它空转一段时间。所需的时间错误出现unpredictble但范围从~ 30分钟到几个小时。错误流几页的消息我只能复制下面的前几行。也不清楚除了错误什么坏实际发生这个错误的结果——gui继续函数虽然表的内容通常是空的,需要刷新后发生错误。我通常重启一般原则但不确定,这是必要的。是值得的,我有非常相似的gui中创建指南,从来没有表现出这种行为。我目前运行的这个主题,R2014B但是错误已经存在至少早在2013年b。任何建议都是受欢迎的。

错误消息(第一个8 ~ 70线)

异常的线程java.lang.NullPointerException“AWT-EventQueue-0”
在com.sun.java.swing.plaf.windows.WindowsTableHeaderUI XPDefaultRenderer美元。油漆(未知源)
在javax.swing.CellRendererPane。paintComponent(未知来源)
在javax.swing.plaf.basic.BasicTableUI。paintCell(未知来源)
在javax.swing.plaf.basic.BasicTableUI。paintCells(未知来源)
在javax.swing.plaf.basic.BasicTableUI。油漆(未知源)
在javax.swing.plaf.ComponentUI。更新(未知源)
在javax.swing.JComponent。paintComponent(未知来源)

大卫·桑普森

帮助浏览器冻结,刘洋贝是一种已知的MATLAB R2015b问题已经解决。

贝刘

伟大的工具箱!
一个问题:每次我想查看帮助文件在Matlab, Matlab将死了。我不确定它是否只是我的问题。我用R2015a

乔纳森Cottet

谢谢你这个伟大的工具箱!

我想可以设置最大高度和最大宽度的网格,VBoxFlex HBoxFlex。是否可以添加属性MaximumHeights而MaximumWidth(或有另一种方式去做?)。

大卫·巴里

神奇的

大卫·桑普森

埃里克,HG2 R2014b之前不受支持。万博1manbetx使用R2014b之前,下载GUI布局工具箱版本1;上面的链接是提交的描述。

大卫·桑普森

Carsten, doc浏览器挂是众所周知的MATLAB R2015b释放问题正在解决。

jtrunnels

漂亮的工作。

一个小错误:uix。BoxPaneldoes not work in the 2015b prerelease with non-standard DPI settings.

卡斯滕•贝奈克

嗨kp

谢谢你的快速传递/提示。但它不工作。

更糟:当我开始医生命令在命令窗口并键入tabpanel我看到很多条目。选择第一个崩溃Matlab (R2015a) !Matlab不显示任何响应,必须使用任务管理器关闭。

后重新启动Matlab得到消息:

警告:MATLAB工具箱路径缓存过时,没有被使用。
类型的帮助toolbox_path_cache的更多信息

检验表明,仍选择“启用工具箱路径缓存”。

重新启动后,再次Matlab我观察相同的行为。

有谁知道如何克服这个问题呢
谢谢提前

kp

我和我的代码也有类似的问题。我相信这个名字已经改为SelectionChangedFcn最新版本的工具。你可能有一个示例文件之间的不匹配和工具箱。

卡斯滕•贝奈克

应用:tabpanelexample

我总是得到错误信息:
错误使用uix.TabPanel /组
没有SelectionChangeCallback TabPanel类属性。

错误tabpanelexample(36行)
设置(tabpanel SelectionChangeCallback, @ (a, b)组(b小组辩论,“价值”。NewValue));

有什么问题(我使用Matlab R2015a 32位)?

卡斯滕•贝奈克

应用:tabpanelexample

我总是得到错误信息:
错误使用uix.TabPanel /组
没有SelectionChangeCallback TabPanel类属性。

错误tabpanelexample(36行)
设置(tabpanel SelectionChangeCallback, @ (a, b)组(b小组辩论,“价值”。NewValue));

怎么了?

埃里克

好的,我意识到我正在艰难的工作在灰色地带的版本,但我在hg2模式下运行在2014年。我得到错误的2014版本(p17)这样做(我希望),我有困难安装2014 b +版本(2.1.2)因为我还没有找到一种方法来安装一个工具箱在2014年。有什么建议吗?有人试过。等待2015 b升级。

大卫·桑普森

> >帮助uix.TabPanel

“从R2014b, MATLAB提供uitabgroup和uitab标准组件。考虑使用uitabgroup和uitab新代码如果这些满足您的要求。”

这将不适合,如果你的代码运行pre-R2014b或如果你需要禁用选项卡。

大卫·桑普森

对于那些报告问题TabPanel在独立应用程序中,你可以请联系我直接和简单的复制步骤,这样我们可以调查。

Carsten

一种取代TabPanel-code崩溃:

%使用uitabgroup和uitab(没有崩溃独立):

TabNames = {M1,‘U2’,‘R3’,‘K4’,‘P5};

tabAnalyte = uitabgroup (hbox‘标签’,‘tabAnalyte’,‘SelectionChangedFcn’, @ (src, evnt) onTabAnalyteSelection (evnt src gui.Window));
i = 1:元素个数(TabNames)
htab (i) = uitab (tabAnalyte“父”,“标题”,TabNames{我});
结束

在“onTabAnalyteSelection”%
选项卡= src.SelectedTab.Title;
切换选项卡……结束

使用uiextras %。TabPaneland uipanel (CRASHES in standalone):

TabNames = {M1,‘U2’,‘R3’,‘K4’,‘P5};

tabAnalyte = uiextras.TabPanel (hbox‘父’,‘标签’,‘tabAnalyte’,“回调”,@ (src, evnt) onTabAnalyteSelection (evnt src gui.Window));
i = 1:元素个数(TabNames)
htab (i) = uipanel (tabAnalyte‘父’,‘BorderType’,‘没有’);
结束
tabAnalyte。TabNames = TabNames;
tabAnalyte。TabSize = 120;

在“onTabAnalyteSelection”%
选项卡= src.TabTitles {evnt.SelectedChild};
切换选项卡……结束

塞吉奥Calleja

@Alex,我不知道TabPanel失败在编译应用程序所以我想我很幸运。我使用2014 b和使用uitab的主要原因是使代码尽可能支持而不是过度使用GUILayout组件万博1manbetx

Mauritz

TabPanel也失败对我来说在编译应用程序——从代码工作正常。

亚历克斯Perrone

@Sergio,非常好。所以基本上,你用uitab而不是TabPanel无处不在?有某些原因你跟着uitab而不是TabPanel ?也就是说你知道TabPanel编译应用程序的失败?

亚尼克

@Carsten:我有同样的问题与部署GUI的报道,但由于uitab现在官方支持在2014 b就可以使用,直到修复……万博1manbetx(很快我希望?)

Carsten

@Alex Perrone:当我运行一个独立的GUI总是崩溃当我改变(一些)选项卡。

看到我的帖子的Mathworks引用下面的2015年6月22日。

我现在考虑MatPi……

亚历克斯Perrone

与许多独立的GUI组件(几个标签,很多嵌套板/ HBox / VBox,几个剧情人物,一张桌子,等等),每个标签很* *缓慢变化。建议改善的速度改变标签吗?

达尼

我似乎记得,在以前的版本中,分频器是用于显示在Flex对象只有在指定的相对大小。现在他们总是出现。我怎么指定的一些孩子Flex对象有固定大小吗?

Carsten

一个重要的GUI布局工具箱的用户请注意:

“有缺陷的回调结合Java组件(如使用的GUI布局工具箱)在独立的应用程序进行交互。没有直接的解决方法这一问题在当前MATLAB版本(R2015a)除了不利用图形组件的GUI工具箱布局。即将到来的问题应该解决R2015b释放一个预发行版本已经可供下载。”

大卫·桑普森

Tianhan,谢谢你的错误报告,这将是固定的下一个版本。

Tianhan

@David桑普森,错误报告。
有一个小错误在uix(错误)。BoxPanel类。根据帮助文档和示例,它有一个属性名为“IsMinimized”,但它实际上是命名为“最小化”。因此,当运行minimizeexample。米”,发生错误,表示没有适当的方法,财产,或字段的IsMinimized uix.BoxPanel”“上课”。

杰森

我创建了gui使用工具箱建于2014年之前的b,如果我安装这个更新版本的Matlab工具箱和升级到2015,我需要会通过gui创建代码,更新调用工具箱或我应该好吗?

大卫·桑普森

的R2015b MathWorks预映现在是可用的。我们的测试表明,与TabPanels有一个问题。我们正在调查。

2.1.2版本包含一些小的bug修复。

Tianhan

我只是发现的东西能比得上QT让我做项目原型直接在MATLAB。谢谢!

伊戈尔

哇,很漂亮的GUI布局是活着!

我想报告下面的小问题(或. .“设计”吗?)。在以下代码中,看不见VButtonBox可见当额外BoxPanel创建:

= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =

hfigure =图();

b1 = uix。VBoxFlex( 'Parent', hfigure );
b11 = uix.BoxPanel(“父”,b1、“标题”、“BoxPanel1”);
b11 b111 = uix.VButtonBox(“父”,“可见”,“关闭”);
b111 b1111 = uicontrol(“父”,“风格”,“复选框”,“弦”,“看不见的复选框”);

b12 = uiextras。BoxPanel('Parent',b1,'Title','By creating this, we also make b1111 visible');

= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =

大卫·桑普森

合资公司,调查支持保存和加载的GUI工具箱容器正在万博1manbetx进行布局。然而,正常的工作流程是编写代码,每次创建GUI和运行。

日本胜利公司

道歉为多个帖子,我有困难提交评论…

我遇到了一个严重的错误时重新加载数据保存使用如下所示的代码片段:

hfig =图;
vb = uix.HBox(“父”,hfig);
ctr = uicontainer(“父”,vb);

当从这个代码生成的图保存到磁盘,然后重新加载它导致立即崩溃的MATLAB (R2014B, 32位或者64位,GUI布局v2.1,这个主题)。

任何人遇到这种问题或更好的知道如何修复它吗?

伊恩

2.1.1的变更(从发行说明)

uix添加上下文菜单。TabPaneltab labels (G1245669)
固定G1164656“不能设置宽度相对选项卡”
固定财产RowSizes uiextras G1019441”。GridFlex集高度宽度”
固定G1165274”缺失属性RowSizes、MinimumRowSizes ColumnSizes, MinimumColumnSizes uiextras。网格,uiextras.GridFlex”
固定G1218142“内容是通过属性重新排序时丢失的孩子”
防止G1136196“segv当孩子从“掉”的可见性设置为“上”被相应的反应
只是小修小补文档

噪音

Carsten

真的的GUI布局工具箱不支持radiobuttons togglebuttons ! ?万博1manbetx

我已经下载了“uiextras。HButtonGroup”但是当我运行示例:

f =图;
vb = uiextras.VBox(“父”,f);
使用bgH = uiextras.HButtonGroup(“按钮”,“父母”,vb{' 1 ', ' 2 ', ' 3 '},“间距”,50岁的“填充”,10日SelectedChild, 1, SelectionChangeFcn, @onSelectionChange);

我得到错误消息:

“错误使用uiextras.ButtonGroup /组。SelectedChild(第84行)
所选子值1的数量超过控制孩子们:0”

有人能帮忙吗?

理查德。

@Tom
如果你改变

ax =轴(“父”,cp);

ax =轴(“父”,uicontainer(“父”,cp));

这可能会解决你的问题。

看来,当您指定一个父一个轴在GUI布局工具箱必须在uicontainer功能正确。

塞吉奥Calleja

Carsten

有一个简单的方法来创建表的GUI布局工具箱吗?

和任何人都可以贴一些例子吗?

亚历克斯·查宾

有谁Carsten从1月7日的问题解决了吗?我有一个类似的问题。

谢尔盖·P。

尼尔凯思内斯郡

绝对高兴使用这个工具箱在使用指南。

亚当Filion

乔纳森

这个工具箱是优秀的。文档通过“医生uiextras”有点稀缺,一个很好的介绍(我想说必读)可以在工具箱的先前版本“layoutHelp /用户guide.html”。

伊恩

人是在2014年崩溃b加载数据,当心uix对象可以的原因,确保你之前删除任何uix对象储蓄。修复显然。

科比

在uiextras Bug。GridFlex集。RowSizes accessor. It sets Widths instead of Heights.

拉斐尔·桑切斯

汤姆

正如我之前所说的,伟大的提交。

我来了在传说和uix奇怪的行为。看到下面的示例代码将重现这个问题。基本上,轴在uix传说命令时将会消失。

% 2014 b——传说重置轴和轴和传奇不可见。
f =图;
cp = uix.Panel(“父”,f);
ax =轴(“父”,cp);
轴(ax)
情节(1:10,1:10);
传奇(这是传奇”)

% 2014 b -传说和轴出现罚款。
f =图;
cp = uipanel(“父”,f);
ax =轴(“父”,cp);
轴(ax)
情节(1:10,1:10);
传奇(这是传奇”)

jj

伟大的工具箱!

在tabpanelexample似乎有一个错字。米,36行:
SelectionChangeCallback需要SelectionChangedCallback。

亚当·怀亚特

顶级的!我用这个,在快速迁移到R2014b恭喜!

文档问题:
IsDocked / IsMinimized——>停靠/最小化-也需要变化对先进军事演习部分。

会议呼吁DockFcn / MinimizeFcn不清楚-即它遵循相同的其他回调(即需要两个参数:hObject & callbackdata函数处理调用)?

文档是烦人——例如打字doc uix只是提出类的帮助,使文档不是很好,所以我必须加载索引。html文件,有点不方便。

Mauritz

瑞安

文档TabPanel大小表示:
TabPanel.TabSize
但实际上是:
TabPanel.TabWidth

加里

卡斯滕•贝奈克

我尝试运行示例“guideApp”,伴随着这个工具箱(R2014b)。
然而我总是得到一个错误消息:

使用uiextras错误。容器(第66行)
尝试运行使用、MATLAB图形对新的图形系统。请重新安装。

在uiextras错误。网格(第66行)
obj@uiextras。容器( varargin{:} );

在uiextras错误。GridFlex(58)行
obj@uiextras。网格( varargin{:} );

错误guideApp > guideApp_OpeningFcn(第64行)
g = uiextras。GridFlex( 'Parent', handles.uipanel1, ...

错误gui_mainfcn(第220行)
函数宏指令(gui_State。gui_OpeningFcn, gui_hFigure, [], guidata(gui_hFigure), varargin{:});

错误guideApp(44)行
gui_mainfcn (gui_State变长度输入宗量{:});

使用相同的matlab的GUI工具箱(R2014b),但释放R2014a效果好。

我错了吗?重新安装是什么意思呢?

Carsten

杰米

史蒂芬,我也有类似经历,不一样的但是我认为它是相关的,和修复使用常规uipanel。

我试着你的例子与常规uipanel BoxPanel和调整时不重置本身。我不能说如果这是一个错误在BoxPanel但不管怎样使用uipanel可能是一个解决方案调整时如果它不能重置。

你也可以插入一个uipanel BoxPanel和儿童的网格,以防止重置,像这样:

无花果=图(42);clf;
英国石油(bp) = uiextras。BoxPanel('Parent', fig, 'Title', 'toto');
摘要= uipanel(“父”,英国石油(bp) BorderWidth, 0);
g = uiextras。网格('Parent', uip, 'Visible', 'off');
uicontrol(“父”,g);
uicontrol(“父”,g);

希瑟

编辑:我做了更多的测试,我复制错误如下:1 TabPanel图。TabPanel有2个标签;第一个场上,第二个有2个轴。(只有1轴,没有崩溃。

希瑟

我有一个GUI使用标签,在从Matlab命令行调用时没问题。然而,一旦我编译它,试图改变标签程序崩溃。这是一个已知的缺陷吗?它可能不是由于工具箱,但我想检查。

公民疯了

从R2013b迁移到R2014b时另一个小问题。HG2意味着很大的变化,当然,)。无论如何,这个工具箱确实是一个必须设计吸引人/现代接口!

%这与V1 (R2013b)
无花果=图(42);clf;
英国石油(bp) = uiextras。BoxPanel('Parent', fig, 'Title', 'toto');
g = uiextras。网格('Parent', bp, 'Visible', 'off');
uicontrol(“父”,g);
uicontrol(“父”,g);

% V2.1——牧师1011 R2014b)
%的可见性是“关闭”,直到图的大小(能见度突然改变“上”)
无花果=图(42);
clf;
英国石油(bp) = uix。BoxPanel('Parent', fig, 'Title', 'toto');
g = uix。网格('Parent', bp, 'Visible', 'off');
uicontrol(“父”,g);
uicontrol(“父”,g);

罗曼

首先,谢谢你这个优秀的工具箱

我只是想使用+ uix提交bug。VButtonBox + uix.HButtonBox:
记录,有一个“启用”属性,但我设置这个属性有以下问题:“没有启用属性VButtonBox阶级”。
知道这个问题吗?
由于先进的!

公民疯了

有一些问题当仍然使用+ uiextras的向后兼容性。例如“设置”命令“ColumnSizes / RowSizes”不再是公认的,另一个必须使用从+ uix宽度/高度。同样“BorderType”,必须使用一个“没有”“没有”不再是工作。其他的,这是一个很好的工具。

银行

这是严重的一个最好的提交文件交换!

我已经浏览代码,我可以看到它最后可能R2014b MATLAB uicontrol (uix子类。在v2继承自matlab.ui.container.internal.UIContainer容器,而不是一个包装器在v1) !

然而每当我尝试这用自己的类,我得到一个错误,“类“MyControl”不是一个允许类的子类matlab.ui.container.internal.UIContainer。”…是你的类硬编码在MATLAB允许子类,但是没有其他人? ?

必杀技

杰米

谢谢你的反馈,我认为这可以帮助人们理解uipanel和uiextras之间的区别。面板,尤其是不设置GLT容器的位置。在这种情况下,需要手动定位,使用常规uipanel。下面是一个例子,与困难我和展示位置痛击,大卫是指:

w =图(75);
g1 = uiextras。GridFlex('Parent', w);

c11 = uiextras。面板('Parent', g1, 'BackgroundColor', [0.95, 0.95, 0.95]);
c12 = uiextras。面板('Parent', g1, 'BackgroundColor', [0.95, 0.95, 0.95]);
c21 = uiextras。面板('Parent', g1, 'BackgroundColor', [0.95, 0.95, 0.95]);
c22 = uipanel(“父”,g1,写成BackgroundColor, [0.95, 0.95, 0.95]);

集(g1、“RowSizes”[1],“ColumnSizes”, [1]);

x = 0:π/ 100:2 *π;
y = sin (x);

a1 =轴(c11“父”,“单位”,“归一化”,“位置”,(。25或25。5。5);
情节(x, y);

c22 a2 =轴(“父”,“单位”,“归一化”,“位置”,(。25或25。5。5);
情节(x, y);

Beatriz

我很抱歉,因为我相信我的问题表明Matlab新手我什么。

我继续得到这个错误消息当试图在matlab使用ay命令窗口用spm 8:

没有方法与匹配签名找到“删除”类“matlab.ui.control.UIControl”。

错误使用waitfor
当评估UIControl回调时发生错误

任何指导将不胜感激

Carsten

谢谢你,大卫。

它解决了我的问题:

如果use_extra
vbox = uiextras。VBoxFlex('Parent', window, 'Spacing', 3);
hp1 = uipanel(“父”,vbox);
axes1 =轴(“父”,hp1);
hp2 = uipanel(“父”,vbox);
axes2 =轴(“父”,hp2);
集(vbox,“大小”,[4]5);
其他的
axes1 =情节(211);
axes2 =情节(212);
结束

大卫·桑普森

Carsten,有问题处理插图(传说,colorbar)和rotate3d新的图形系统。挑战在于识别图形对象,为布局的目的应该被忽略。我们正在取得进展但也有一些微小的变化,也需要在MATLAB本身。在那之前,解决方案是将轴与插图和3 d-rotating轴uicontainer(或与装饰uipanel关闭),所述的GUI布局工具箱文档。

大卫·桑普森

杰米,你不应该直接设置GLT容器内容的位置。您所做的任何更改都会被拖垮的工具箱的代码。如果你觉得在v1和v2布局行为之间有差异,请直接联系我们,我们会调查。

大卫·桑普森

感谢加里和杰米发现一些小错误。修复已经并将在下一个版本中实现。

加里

看起来像有一个小错误在dockexample演示-没有.IsDocked面板属性/方法,正确的属性/方法是.Docked

亚尼克

你好大卫,

你会如何uix对象复制到新数据?

我试着“copyobj”,但孩子们/内容不表现在复制对象。

有一个简单的技巧吗?

谢谢!

是有区别的TabPanel这个版本和旧版本。的垂直对齐TabTitles现在在顶部。是否可以在选项卡的中心对齐喜欢旧版本吗?

杰米

垃圾邮件对不起,似乎有一个错误映射ColumnSizes RowSizes宽度和高度。似乎他们向后ColumnSizes不工作。文档中的示例展示了这个问题:

f =图();
g = uiextras。GridFlex( 'Parent', f, 'Spacing', 5 );
uicontrol(“父”,g,“背景”,“r”)
uicontrol(“父”,g,“背景”,“b”)
uicontrol(“父”,g,‘背景’,‘g’)
uiextras。空( 'Parent', g )
uicontrol(“父”,g,“背景”,“c”)
uicontrol(“父”,g,‘背景’,‘y’)
集(g,“ColumnSizes”, [1 100 2],“RowSizes”, [1 - 2]);
%与以下:
%设置(g,“宽度”,[1 100 2],“高度”,[1 - 2]);

杰米

别介意我之前的评论,v1和v2之间的这种行为是很常见的。特别是:
图();
panel1 = uiextras.Panel ();
panel1 a1 =轴(“父”,“标签”,“p1”);
集(a1,“单位”,“归一化”);
集(a1,“位置”,[0.06 - 0.13 0.9 - 0.75]);

我面临的是如何保护规范化调整事件间的位置?

有一些布局差异在v2中我试图明确正确的通过指定位置。

拉尔夫·科尔曼

回复马库斯:这是一个例子显示了使用中的uitabgroup布局,以及uitree(这很可能成为一个“官方”uicontrol一天):
%创建图在屏幕的中心
scr_size =(0, '拉');
Fig_h =图(“菜单条”,“没有”,“名字”,“主GUI图”,…
“OuterPosition”, [scr_size (1:2) + 50 scr_size(3:4) -100],“标签”,“GUI_Fig”);

%创建树控制节点包括根
node1 = uitreenode(“半”,“宝马”、“宝马”,[],假);
node2 = uitreenode(“半”、“奥迪”、“奥迪”,[],假);
node3 = uitreenode(“半”,“大众”,“大众”,[],假);
根= uitreenode(“半”,“德国车”,“德国车”,[],假);
root.add (node1);
root.add (node2);
root.add (node3);

%创建树控件
[~,treecontainer] = uitree (Fig_h‘半’,‘父’,‘根’,根);

%安排的主要接口
Fig_h vertLayout = uix.VBoxFlex(“父”,“间距”,5);
vertLayout horzLayout = uix.HBoxFlex(“父”,“间距”,5);
vertLayout messagePanel = uix.BoxPanel(“父”,“标题”,“消息”);
treePanel = uix。BoxPanel('Parent',horzLayout,'Title','Object browser');
horzLayout viewPanel = uix.BoxPanel(“父”,“标题”,“查看”);
viewContainer = uicontainer(“父”,viewPanel);

%的主要调整布局
messagePanel uicontrol(‘父’,‘风格’,‘编辑’,‘写成Backgroundcolor’,‘w’,……
‘标签’,‘信息’,‘麦克斯’,1000年,“HorizontalAlignment”、“左”,“弦”,“消息1”);
集(treecontainer,‘父’,treePanel);
集(vertLayout,“高度”,[1]4日);
集(horzLayout,“宽度”,[1]);
tabgp = uitabgroup (viewContainer);
tab1 = uitab (tabgp,“标题”,“视图1”);
tab2 = uitab (tabgp '标题','视图2 ');

这是一个巨大的GUI工具箱设计!

杰米

我有一个复杂GUI构建版本1的工具箱,在新版本有问题。

我有追踪下来与单位什么似乎是一个问题。轴的单位将被规范化,但当GUI的大小(或第一次呈现在一个隐藏选项卡被选中)的单位转换为像素和尺寸是错误的。

我不确定它是相关的,但使用的旧版本
uiextras.set (gui。窗口中,“DefaultPanelUnits”、“规范化”);
目前显示一个警告。

如果是有帮助的,我可以建立一个简化的例子证明这种行为。

马库斯

伟大的工具箱,但我有一些问题开始。有一个例子,我可以使用2014 b uitab呢?或者我应该只是刚从这个工具箱选项卡面板?

Jia-Jung

大卫·桑普森

乔纳森,抢手货,我将实现支持负(相对)TabWidth尽快。万博1manbetx

乔纳森

这是一个优秀的小计划,不幸的是在2014年我再也不能把我TabPanel TabWidth财产,但必须使用积极的标量意味着它不再尺度我拖动窗口。附近有一个简单的工作吗?

汤姆

谢谢澄清这个大卫-我可以代码圆它没有问题。我怀疑你的解决方法在大多数情况下会没事的。

大卫·桑普森

汤姆,我们已经删除了启用/禁用功能在这一阶段由于挑战与实现,虽然我们工作更多的是开放的。属性“启用”是包含在uiextras包支持遗留代码,虽然不再有任何影响。万博1manbetx演示“enableexample”应该被移除,并将从下一个版本。

我鼓励任何启用/禁用用例联系。具体地说,我感兴趣的情况下,多组(findall (c、“类型”、“uicontrol”),“启用”,v)是必要的。

汤姆

伟大的提交人。只是起床速度与14 b,你的2.1版本。使我发现一些问题,不是倾泻下来的孩子从面板和箱子。事实上如果我运行演示enableexample。米在R2014b我得到以下错误

> > enableexample
错误使用uix.BoxPanel /组
没有启用属性BoxPanel类。
错误enableexample(27)行
集(面板,“使”,“关闭”);

这表明使没有实现....

大卫·桑普森

大卫,mltbx出版文件的版本(1.0)是不正确的,尽管mltbx提交文件的版本(2.1)是正确的。我们正在调查。没有影响功能,尽管我们想要这个问题解决之前我们发布下一个更新。

大卫·桑普森

大卫,你的问题是解决在分段“内容属性”部分的“兼容性的考虑”GUI布局工具箱版本说明:

版本1的内容对象是通过房地产的孩子。版本2的内容对象是通过属性内容。版本2的对象也提供了一个属性的孩子,但这控制垂直堆叠顺序而不是布局顺序。遗留代码访问儿童将运行没有错误,但不会达到预期的布局变化顺序,相反,应该修改访问内容。

即将发布的版本1将包括支持代码,通过内容引用内容。万博1manbetx这样,代码修改工作版本2也将在版本1。

这一变化的背景如下。版本1为内置图形对象包装器对象,通过产权和呈现内容布局顺序的孩子。版本2对象扩展内置图形对象,因此,继承的属性、方法和事件。孩子就是这样一个属性用于控制了自上而下的堆叠顺序。MATLAB堆放规则,如控制总是最重要的轴,意味着一些合理布局订单可能无效订单堆积,所以财产布局新秩序是必需的。

大卫·桑普森

Benoit,我们进行了审查v1 API和决定,有一些事情我们会改变如果我们一次又一次:名称、形状,等。结果v2 uix, uiextras提供兼容性。我们的建议是:
*使用uix新代码,只有从14 b开始工作
*使用uiextras旧代码或者新代码,对14 b前v1和v2 14 b开始

大卫·巴里

大卫,本,

看来你有逆转的孩子相比,这个版本以前R2014b释放。我只测试了在VBox但他们绝对是按照相反的顺序。击落我坏的实践,但我有一些遗留代码依赖于订单所以你可以想象我有点生气。

下面的简单的例子演示了这一问题。的顺序返回button1 button2 GLT但button2版本1,button1 GLT版本2。我想有一个真正的逆转的原因吗?

v = uiextras.VBox;
b1 = uicontrol(“父”,v, '字符串',' Button1 ');
b2 = uicontrol(“父”,v, '字符串',' Button2 ');
2 = 1:元素个数(v.Children)
disp (get (v.Children (ii), '字符串'));
结束

科比

谢谢你这么快在这!

大卫·巴里

大卫,本,

版本信息包含在工具箱包装报告这是版本1.0而不是2. x

Benoit波顿

谢谢你大卫,

我的工作是使用一个HBox, uicontainer更优雅、更容易实现。

看起来很不错的向后兼容性。有什么优势从uiextras更新旧代码。uix。吗?

大卫·桑普森

目前,很难支持布置轴两种情况:万博1manbetx
(1)轴与插图(传说,彩色的)
(2)三维旋转的轴

等的解决方法是将轴内uicontainer GUI工具箱布局容器内(c1和c2在下面的代码):

f =图();
b = uix。HBox( 'Parent', f );
c1 = uicontainer(“父”,b);
a1 =轴(“父”,c1);
[x, y, z] =山峰(15);
冲浪(a1, x, y, z)
c2 = uicontainer(“父”,b);
a2 =轴(“父”c2);
冲浪(a2, y, x, z)
rotate3d (f,“上”)

我们正在与我们的同事在开发去除中间容器的必要性。

虽然这个问题在文档中所提到的,我们将已知的限制更加突出在即将推出的新版本。

Benoit波顿

大卫,本,
非常感谢你分享你的辛勤工作。

一个3 d图绘制在一个面板diseappears当激活rotate3d:

f =图;
axPanel = uiextras。面板(“父”,f);
hax =轴(“父”,axPanel);
(X, Y) = meshgrid (2:。2:2,2:.2:2);
Z = X。* exp (- X。^ 2 - y ^ 2);
冲浪(X, Y, Z)
rotate3d上

这是在2013 b v1

达尼

似乎在v1 uiextras对象继承uipanels的默认背景颜色,可以设置的。
集(0,' DefaultUipanelBackgroundColor ', ' r ')
我怎么在v2实现相同的吗?

本Tordoff

嗨,伊恩,谢谢你发现,我固定它在接下来的更新。医生仍然是一个正在进行的但如果你发现其他错误让我们知道(你可以直接联系我们,如果你不想把你找到的一切公开)。

伊恩

嗨,只是提醒我们,几个属性改变了如果你想切换uiextras uix,但是文档还没有最新的(即TabPanel > TabSize财产等),所以检查类文件本身的属性名称。