2016-10-03 1 views
0

私はカラーフィールドでツリービューのセルを塗りつぶし、これを行う良い方法を探したいと思います。ここでPython Gtk3は、カラーフィールドでtreeviewのセルを作成します。

は、私はすでに試みているものです:

#!/usr/bin/env python3 
#-*- coding: utf-8 -*- 

import gi 
gi.require_version('Gtk', '3.0') 
from gi.repository import Gtk 
from gi.repository import Gdk, GdkPixbuf 


window = Gtk.Window() 
window.set_default_size(300, 100) 
window.connect("delete-event", Gtk.main_quit) 
window.set_title("CellRendererPixbuf in GTK3") 

box = Gtk.HBox() 
window.add(box) 

liststore = Gtk.ListStore(GdkPixbuf.Pixbuf) 
pix = GdkPixbuf.Pixbuf.new(GdkPixbuf.Colorspace.RGB, True, 8, 10, 10) 
liststore.append([pix]) 
treeview = Gtk.TreeView(model=liststore) 
renderer_pixbuf = Gtk.CellRendererPixbuf().new() 
column_pixbuf = Gtk.TreeViewColumn("Color", renderer_pixbuf, stock_id=0) 
treeview.append_column(column_pixbuf) 

box.pack_start(treeview, True, True, 0) 

window.show_all() 
Gtk.main() 
+0

私は質問がHTTPに似ていると思う:// stackoverflow.com/questions/38771311/drawing-a-custom-gdkpixbuf-using-gtk3-and-cairo – oxidworks

答えて

1

ソリューション

最後に、私はそれが今働いてしまった:

#!/usr/bin/env python3 
#-*- coding: utf-8 -*- 

import gi 
gi.require_version('Gtk', '3.0') 
from gi.repository import Gtk 
from gi.repository import GdkPixbuf 

window = Gtk.Window() 
window.set_default_size(300, 100) 
window.connect("delete-event", Gtk.main_quit) 
window.set_title("CellRendererPixbuf in GTK3") 

box = Gtk.HBox() 
window.add(box) 

# creat liststore 
liststore = Gtk.ListStore(str, GdkPixbuf.Pixbuf) 

pixbuf = GdkPixbuf.Pixbuf.new(GdkPixbuf.Colorspace.RGB, False, 8, 32, 16) 
pixbuf.fill(0xff0000) 
liststore.append(["Green", pixbuf]) 

pixbuf = GdkPixbuf.Pixbuf.new(GdkPixbuf.Colorspace.RGB, False, 8, 32, 16) 
pixbuf.fill(0x00ff00) 
liststore.append(["Blue", pixbuf]) 

pixbuf = GdkPixbuf.Pixbuf.new(GdkPixbuf.Colorspace.RGB, False, 8, 32, 16) 
pixbuf.fill(0x000000) 
liststore.append(["Black", pixbuf]) 

# create treeview 
treeview = Gtk.TreeView(model=liststore) 

# create text column 
renderer_text = Gtk.CellRendererText() 
column_text = Gtk.TreeViewColumn("Text", renderer_text, text=0) 
treeview.append_column(column_text) 

# create pixbuf column 
renderer_pixbuf = Gtk.CellRendererPixbuf().new() 
column_pixbuf = Gtk.TreeViewColumn("Color", renderer_pixbuf, pixbuf=1) 
treeview.append_column(column_pixbuf) 

# pack 
box.pack_start(treeview, True, True, 0) 
window.show_all() 
Gtk.main() 
関連する問題