【问题标题】:How can I highlight a row in Gtk.treeview _without_ selecting it?如何在不选择 Gtk.treeview 的情况下突出显示一行?
【发布时间】:2020-01-19 18:18:20
【问题描述】:

我有一个代表我正在构建的音乐播放器应用程序的歌曲播放队列的 gtk 树视图。我想突出显示当前播放歌曲的行。我知道我可以选择它以突出显示它,但我希望突出显示当前歌曲,并允许用户选择另一首歌曲。我一直无法找到实现这一点的方法,我非常感谢任何建议。

import gi 
import sys
gi.require_version ("Gtk", "3.0")
from gi.repository import Gtk

class PlaybackQueue():
    def __init__(self):
        #Sets up list store, for now each row only contains a song name
        self.list_store = Gtk.ListStore(str)

        #Sets up treeview
        self.tree_view = Gtk.TreeView(self.list_store)
        renderer = Gtk.CellRendererText()
        column = Gtk.TreeViewColumn("Song", renderer, text = 0)
        self.tree_view.append_column(column)

        self.selection = self.tree_view.get_selection()
    def update_current_song(self):
        #current_song_iter is the iter corresponding to the current song, how do I highlight it in the tree view?
        current_song_iter = self.get_current_song()
        return True

【问题讨论】:

    标签: python treeview gtk highlight gobject


    【解决方案1】:

    我认为您需要创建一个自定义单元格渲染器,它可以以不同于“选定”的方式渲染“当前播放”。或者添加一个额外的列,该列(例如)在当前播放的行中包含一个图标,而在其他行中没有任何内容。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-06-26
      • 2020-08-15
      • 2021-01-30
      • 2019-10-19
      • 1970-01-01
      • 2015-02-23
      • 2014-11-02
      • 1970-01-01
      相关资源
      最近更新 更多