質問

私は現在、OCaml と GTK を一緒に使用することを実験しています ( ラブルグティーク バインディング)。ただし、ドキュメントは最高とは言えず、ほとんどの機能の使用方法は理解できますが、ノートブックのページを変更する (別のタブに切り替える) ことに行き詰まっています。

見つけた 使用する必要がある機能, 、でも分からない どうやって それを使うために。ドキュメントでは、それがサブモジュール内にあることを示唆しているようです GtkPackProps.Notebook, しかし、これをどう呼ぶのかわかりません。

また、この関数には、これまでに見た関数とは異なる型シグネチャがあります。

 val switch_page : ([> `notebook ], Gpointer.boxed option -> int -> unit) GtkSignal.t

を返すと思います GtkSignal.t, しかし、最初のパラメータ(括弧内の部分全体)を関数に渡す方法がわかりません。

誰かがノートブック ページを変更する方法を示すサンプル コードを入手したり、その方法に関するヒントを教えてくれたりする人はいますか?

役に立ちましたか?

解決

見つかったのは関数ではなく信号です。タイプに表示される機能タイプは、ページスイッチが発生したときに呼び出されるコールバックの型ですが、それを引き起こすことはありません。

Switch_Pageの種類が次のように読み取られます。

一般的に言って、Lablgtkでは、GTK * Lowレベルのモジュールから離れておくと、TGE G [A-Z]上位モジュールを使用しています。これらのモジュールAPIはC GTKのように見えます、そして私はいつも自分自身を助けるためにメインのGTKドキュメントを使います。

あなたはgpack.notebookオブジェクトとそのgoto_pageメソッドを使いたいです。

他のヒント

見つけました 多態性のバリアント。 これらはマニュアルのセクション 4.2 で説明されていますが、入力規則にはいつも頭を悩ませます。署名に書かれていることは、関数が次のことを示していると思います switch_page 引数として期待されるのは GtkSignal.t, 、これは 2 つのタイプでパラメータ化された抽象化です。

  • 最初の型パラメータ、

    [> `notebook]
    

    以下を含むあらゆる多態性バリアントが値として含まれます。 notebook (それが「より大きい」の意味です)。

  • 2 番目の型パラメータは通常の関数です。

ドキュメントを読んでいると、 GtkSignal.t 正しくは、これはまったく関数ではありません。これは 3 つのフィールドを持つレコードです。

  • name は文字列です。
  • classe これは多態性のバリアントであり、「ノートブック」またはその他のものである可能性があります。
  • marshaller 関数型のマーシャラーです Gpointer.boxed option -> int -> unit.

これがお役に立てば幸いです。さらに問題がある場合は、マニュアルのセクション 4.2 のポリモーフィック バリアントを参照すると解決できるかもしれません。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top