1

Matlab から Octave にスクリプトを移植しようとしています。私が見逃している関数の 1 つは、トグルボタンとプッシュボタンを表示するための uicontrol() です。

SO には次のような質問があります: Octave での Matlab の uicontrol の実装? 当時、uicontrol() は Octave に実装されていませんでしたが、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 にオクターブ 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> available_graphics_toolkits

指図。現在使用されているグラフィック ツールキットは、次のように指定されます。

octave> graphics_toolkit

デフォルトは「gnuplot」です。または、uicontrols は gnuplot と互換性がなく、FLTK と互換性があります。したがって、uicontrol 関数を呼び出す前に、次のコマンドを使用して FLTK グラフィックス ツールキットに切り替える必要があります。

octave> graphics_toolkit fltk;

uicontrol 関数を呼び出す前。

ただし、この答えは部分的なものにすぎません。FLTK グラフィックス ツールキットを使用すると、uicontrol は問題なく動作するように見え、有効なハンドラー (プロパティの設定と取得を許可する) を返しますが、実際のプッシュボタンは図に表示されません...したがって、別の: 何か助けはありますか?

ありがとうございました。

于 2012-07-26T09:47:49.737 に答える
1

Octave 3.6.2 の MSVC/win32 バージョンを使用しています。これは QtHandles に付属しており、uicontrol で動作します (基本的なウィジェット - ボタン、テキスト ボックスでのみテスト済み)。

于 2012-07-31T20:31:29.807 に答える