1

1 か月前に GNOME 3 用の GJS について耳にし、試してみたいと思いました。何を作りたいですか?GJS を使用した GNOME 3 用のシンプルなメディア プレーヤー。

したがって、ベースはプログラムされています。

  • ListStore を作成して TreeView オブジェクトに接続する
  • OpenFile ダイアログ - MP3/OGG​​/WAV ファイルの選択
  • OpenFile ダイアログからファイル名と URI を取得し、Gtk.ListStore オブジェクトに入れます。
  • File が (TreeView オブジェクトで) 選択されると、Gst オブジェクトは現在選択されている行から URI をフェッチします。

問題は、TreeView オブジェクトで選択した行を手動で変更したい (ユーザーが [進む] または [戻る] ボタンを押したとき) ことです。これを行う方法がわかりません。

公式の GNOME-Docs と非公式の Seed Documentationを調べましたが、Google で調べても結果はありませんでした。GNOME 3 の C-Docs でそれを見つけようとしましたが、まだ何もありません。

誰かがこの「小さな」問題に手を貸してくれることを願っています。:)

シンプルな音楽プレーヤーへのリンク。

4

2 に答える 2

1

https://github.com/optimisme/gjs-examplesに良い例があり ます。

「TreeView」を使用するのは egList.js ですが、egOpen.js には、1 つの「変更」イベントから使用される Gtk.ListStore、Gtk.CellRendererTex、Gtk.TreeIter を使用する Gtk.ComboBox もあります。

于 2015-02-26T07:29:08.140 に答える
1

さて、私はちょうど答えを見つけました:

// Get the selection from the Gtk.TreeView Object
this.selection = this._soundList.get_selection ();
// Get the bool "isSelected", the model and the Iter from this.selection.get_selected()
let [ isSelected, model, iter ] = this.selection.get_selected();
// Get the previous row in the list (iter_next(iter) for the next row)
this._listStore.iter_previous(iter);
// The selection should get updated
this.selection.select_iter(iter);
// Get the URI from the Gtk.ListStore Object
this.sound.uri = this._listStore.get_value (iter, 1);

これが必要な人に役立つことを願っています。

于 2013-03-29T18:03:07.187 に答える