2013-03-27 64 views
1

一個月前我聽說過GJS for GNOME 3,我想嘗試一下。我想做什麼? GNOME 3帶有GJS的簡單媒體播放器。Gnome 3 Javascript(GJS) - TreeView - 選擇下一個/上一個項目

所以,該基地已被編程,例如:

  • 創建和ListStore連接到一個TreeView對象
  • 的OpenFile對話框 - 選擇一個MP3/OGG/WAV-文件
  • 獲取文件名和來自OpenFile對話框的URI並將其放入Gtk.ListStore對象當文件被選中(在TreeView對象中)時,Gst對象從當前選擇的行中獲取URI。

現在的問題是,我想手動更改TreeView對象中選定的行(當用戶按下向前或向後按鈕時),並且我不知道如何執行此操作。

我在GNOME官方文檔,非官方種子Documentation和谷歌沒有結果的情況下查了一下。我試圖用GNOME 3的C-Docs發現它,但仍然沒有任何結果。

我希望有人能夠幫助我解決這個「小問題」。 :)

Link給簡單的音樂播放器。

回答

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); 

我希望這將幫助那些誰需要它。

1

有很好的例子在: https://github.com/optimisme/gjs-examples

使用「樹視圖」是egList.js但egOpen.js還具有使用Gtk.ListStore,Gtk.CellRendererTex和Gtk.TreeIter從用於1噸Gtk.ComboBox該一個一個'改變'事件。

相關問題