【问题标题】:Uicontrol on Octave 3.6.2Octave 3.6.2 上的 Uicontrol
【发布时间】:2012-08-01 04:31:29
【问题描述】:

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

关于 SO 有这个问题:Implementation of 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 是存在的。

有什么帮助吗?谢谢。

【问题讨论】:

    标签: octave


    【解决方案1】:

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

    【讨论】:

    • 谢谢。实际上,我结束了使用相同的。 Octave 中有几个错误,我将在那里报告。例如,QtHandles 似乎没有正确报告根对象和当前坐标区的当前鼠标坐标。一直以来,图形对象的当前鼠标坐标都是正确的。感谢您的回答,请在此处查找此线程的更多信息:octave.1599824.n4.nabble.com/…
    • 这是我最终使用的 Octave 3.6.2 版本:sourceforge.net/projects/octave/files/…
    • +1 用于提及 QtHandles,并提到它们仅在 Visual Studio 编译的 Octave 二进制版本中可用,而在 GCC 编译的二进制版本中不可用。虽然这可以通过重新编译来安排。
    【解决方案2】:

    回答我自己(至少部分),对于那些我们可能会遇到相同问题的人: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 似乎可以正常工作,甚至返回一个有效的处理程序(允许设置和获取它的属性),实际的按钮在图中不可见.. . 所以,另一个:有什么帮助吗?

    谢谢。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-03-31
      • 2017-11-17
      • 1970-01-01
      • 2018-07-12
      • 1970-01-01
      • 1970-01-01
      • 2011-07-09
      • 1970-01-01
      相关资源
      最近更新 更多