一个月前我听说了GNOME 3的GJS,我想尝试一下。我想做什么?一个简单的GJS媒体播放器。
因此,碱基已被编程,例如:
- 创建ListStore并连接到TreeView对象
- 打开文件对话框-选择MP3/OGG/wave - file
- 从OpenFile对话框中获取文件名和URI,并将其放入Gtk。li>当文件被选中时(在TreeView对象中),Gst对象从当前选中的行获取URI。
现在的问题是,我想手动改变选定的行在TreeView对象(当用户按下前进或后退按钮),我不知道如何做到这一点。
我在官方的GNOME-Docs和非官方的Seed Documentation上查了一下,谷歌搜索了一下,没有结果。我试着在GNOME 3的C-Docs中找到它,但仍然没有。
我希望有人能在这个"小"问题上帮我一把。:)链接到简单的音乐播放器
好了,我刚刚找到了答案:
// 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);
我希望这将帮助那些需要它的人。
有很好的例子:https://github.com/optimisme/gjs-examples
使用'TreeView'的是egList.js,但egOpen.js也有onet Gtk。使用Gtk组合框。ListStore Gtk。CellRendererTex和Gtk。从一个'changed'事件中使用的TreeIter