ColorButton spustí dialogové okno pro výběr barvy a vypíše do terminálu hodnoty RGB vybrané barvy.
from gi.repository import Gtk
from gi.repository import Gdk
import sys
class MyWindow(Gtk.ApplicationWindow):
def __init__(self, app):
Gtk.Window.__init__(self, title="ColorButton", application=app)
self.set_default_size(150, 50)
self.set_border_width(10)
# ColorButton (které otevře dialogové okno, ve
# kterém si vybíráme barvu)
self.button = Gtk.ColorButton()
# s výchozí barvou (v tomto případě modrou)
color = Gdk.RGBA()
color.red = 0.0
color.green = 0.0
color.blue = 1.0
color.alpha = 0.5
self.button.set_rgba(color)
# Výběr barvy v dialogovém okně vyšle signál
self.button.connect("color-set", self.on_color_chosen)
# Popisek
label = Gtk.Label()
label.set_text("Click to choose a color")
# Mřížka pro připojení tlačítka a popisku
grid = Gtk.Grid()
grid.attach(self.button, 0, 0, 2, 1)
grid.attach(label, 0, 1, 2, 1)
self.add(grid)
# Když je vybrána nová barva, vypíše ji ve formátu rgb(r,g,b) v terminálu
def on_color_chosen(self, user_data):
print("You chose the color: " + self.button.get_rgba().to_string())
class MyApplication(Gtk.Application):
def __init__(self):
Gtk.Application.__init__(self)
def do_activate(self):
win = MyWindow(self)
win.show_all()
def do_startup(self):
Gtk.Application.do_startup(self)
app = MyApplication()
exit_status = app.run(sys.argv)
sys.exit(exit_status)
set_color(barva)
, kde barva
je definována tak, jako v tomto příkladu, nastaví barvu u widgetu ColorButton. Výchozí barva je černá. get_color()
vrátí aktuální barvu.
Na řádku 23 je signál "color-set"
napojen na funkci zpětného volání on_color_chosen()
pomocí widget.connect(signál, funkce zpětného volání)
. Podrobnější vysvětlení viz .
V této ukázce se používá následující:
GtkColorButton
GtkColorChooser
Barvy RGBA