【问题标题】:How to force drawnow Matlab GUI to draw in new window?如何强制drawow Matlab GUI在新窗口中绘制?
【发布时间】:2014-02-08 14:37:36
【问题描述】:

我用drawow绘制了mnist数据集的字符..输出如下输出

当我使用 matlab 创建 GUI 并在加载后调用 drawow 来显示图像时,它会在打开的窗口上绘制图形,并给出以下输出

我的问题是如何强制它在新窗口中绘制?

【问题讨论】:

  • @Rasoolll 感谢您的编辑,现在好多了:)
  • ahmed,我的回答对您有帮助吗?
  • 感谢您的回答,它帮助我了解了drawow的实际作用,在我的情况下,我停止了该项目大约3天的工作,当我再次回到工作岗位时,该问题在应用您之前就消失了解决方案:)
  • 奇怪,但只是为了更好... :-) 也许它与您与程序交互的方式有关。一个人物也可以通过将其带到前台来使其成为“当前”,例如通过鼠标点击。在这种情况下,如果您始终在绘制某些内容之前始终强制执行正确的当前数字,将会有所帮助。

标签: matlab user-interface


【解决方案1】:

drawnow 只要求 Matlab 刷新事件队列和更新图形窗口;它不能确定事物的绘制方式和位置。很难说,因为您没有包含任何代码,但在您的情况下,看起来您只是将角色图像和 GUI 元素绘制到同一个图中。

您可以通过设置“当前图形”来控制图形操作引用哪个图形窗口,其句柄始终包含在变量gcf(图形:当前图形)中。

您生成一个新图形并通过调用使其成为当前图形

figure

如果你想稍后再次使这个图成为当前的,你需要保存它的句柄:

fa = figure;

然后你用给定的句柄再次创建一个图形

figure(fa)

可能的程序的一些粗略草图:

% generate figure windows
fa = figure;
fb = figure;

% plot something in figure a and make the screen update
figure(fa)
plot(...)
drawnow

% put a UI element into figure b and make the screen update
figure(fb)
uicontrol(...)
drawnow

【讨论】:

    猜你喜欢
    • 2010-10-05
    • 1970-01-01
    • 2011-11-16
    • 2011-09-21
    • 1970-01-01
    • 1970-01-01
    • 2014-02-18
    • 2016-03-26
    • 2013-10-09
    相关资源
    最近更新 更多