【问题标题】:PyGTK treeview - same column - with checkbox or textPyGTK 树视图 - 同一列 - 带有复选框或文本
【发布时间】:2015-08-18 11:26:29
【问题描述】:

我想问一下,是否有人知道如何创建由两列组成的树视图。 第一列是描述列,第二列由文本或复选框组成,具体取决于叶子。我必须使用 pygtk 2.0 版(!)对其进行编程。

喜欢

Column 1,          Column2
Test_1
    RPM            2700
    Model          NameXXX
    Active         [X]
Test_2
    RPM            1000
    Model          NameXXX
    Active         [ ]

我应该如何对 column2 进行编程?

test_data = [
        { 'column0' : 'test00', 'column1' : 'test01', 'f': '#000000', 'b': '#FF00FF' },..]
column0 = gtk.TreeViewColumn("Column 0", gtk.CellRendererText(), text=1, foreground=2, background=3)        
        treeview.append_column(column0)

之前的代码允许用户根据行设置前景和背景。我想对单元格渲染器做同样的事情,希望你能帮助我:/

谢谢!

【问题讨论】:

  • 我认为你做不到。相反,让 RPM、Model 和 Active 成为它们自己的列。对于 Active,使用 GtkCellRendererToggle。

标签: python tree treeview gtk pygtk


【解决方案1】:

为此,您必须创建一个可以渲染其他渲染器的渲染器(renderception!)

因此,您创建了一个动态渲染器,其中包含一个文本渲染器和一个切换渲染器以及某种类型属性,以决定您在渲染时要使用哪一个。

将所有相关信号连接到您刚刚创建的自定义渲染器,并将它们传递给选定的渲染器。

对于这些值,创建一个可以同时保存两个值的属性(布尔值和文本,我不知道如何在 python 中执行此操作)并将它们传递给所选渲染器的正确属性。

在 C 中有一个例子。我不知道你是否会理解,但是嘿,这是一个开始! https://github.com/matze/EggPropertyTreeView/blob/master/egg-property-cell-renderer.c

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-12
    • 1970-01-01
    • 2010-12-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多