1

我正在尝试将脚本从 Matlab 移植到 Octave。我想念的一个函数是 uicontrol(),用于显示切换按钮和按钮。

关于 SO 有这个问题:Matlab's uicontrol in Octave 的实现? 当时在 Octave 中没有实现 uicontrol(),但是从 3.6.N 开始,它被宣传为正在实现:http ://www.octave.org/wiki/index.php?title=FAQ#Why_are_the_developers_planning_to_replace_Gnuplot_with_an_OpenGL_backend.3F

但是,在 Ubuntu Quantal 上安装 octave 3.6.2 后,出现此错误:

octave:1> uicontrol
ans=-1.8402
error: __go_draw_figure__: unknown object class, uicontrol
error: called from:
error:   /usr/share/octave/3.6.2/m/plot/private/__go_draw_figure__.m at line 181, column 15
error:   /usr/share/octave/3.6.2/m/plot/__gnuplot_drawnow__.m at line 86, column 5

但是,/usr/share/octave/3.6.2/m/plot/uicontrol.m 是存在的。

有什么帮助吗?谢谢你。

4

2 回答 2

1

回答我自己(至少部分),对于那些我们可能会遇到同样问题的人:Octave 3.6 引入了一个新的图形工具包,即 FLTK,以及默认的 Gnuplot。安装的图形工具包通过以下方式可见:

octave> available_graphics_toolkits

命令。当前使用的图形工具包由以下给出:

octave> graphics_toolkit

默认值为:“gnuplot”。或者,uicontrol 与 gnuplot 不兼容,但与 FLTK 兼容。因此,在调用 uicontrol 函数之前,应该切换到 FLTK 图形工具包,使用以下命令:

octave> graphics_toolkit fltk;

在调用 uicontrol 函数之前。

然而,这个答案只是部分的:虽然使用 FLTK 图形工具包,uicontrol 似乎可以正常工作,甚至返回一个有效的处理程序(允许设置和获取它的属性),实际的按钮在图中是不可见的......所以,另一个:有什么帮助吗?

谢谢你。

于 2012-07-26T09:47:49.737 回答
1

我使用的是 MSVC/win32 版本的 Octave 3.6.2;这与 QtHandles 一起使用,它适用于 uicontrol(仅使用基本小部件进行测试 - 按钮、文本框)。

于 2012-07-31T20:31:29.807 回答