GTK4 の Widget には css-classes というプロパティがある。
定義された文字列を入れれば css が適用されるみたいなんだが。
なんで Adw のほうに書いてあるんだよ。
とにかくボタンとエントリーを着色してみる。
#!/usr/bin/env python3
import gi
gi.require_version('Gtk', '4.0')
gi.require_version('Adw', '1')
from gi.repository import Gtk, Adw
class Win(Gtk.ApplicationWindow):
'''
Adw: Sample Code
'''
def __init__(self, a):
# Set Adwaita Style
manager = Adw.StyleManager.get_default()
manager.set_color_scheme(Adw.ColorScheme.DEFAULT)
# init
Gtk.ApplicationWindow.__init__(self, application=a)
# Round Button
pills = Gtk.Box(orientation=Gtk.Orientation.HORIZONTAL)
pills.append(Gtk.Button(label='pill', css_classes=['pill']))
pills.append(Gtk.Button(label='circular', css_classes=['circular']))
# Button and Entry
buttons = [
Gtk.Button(label='nomal'),
Gtk.Button(label='flat', css_classes=['flat']),
Gtk.Button(label='suggested', css_classes=['suggested-action']),
Gtk.Button(label='destructive', css_classes=['destructive-action']),
pills,
Gtk.Entry(placeholder_text='success', css_classes=['success']),
Gtk.Entry(placeholder_text='warning', css_classes=['warning']),
Gtk.Entry(placeholder_text='error', css_classes=['error'])
]
# pack
box = Gtk.Box(orientation=Gtk.Orientation.VERTICAL, margin_start=48, margin_end=48)
for b in buttons:
box.append(b)
self.set_child(box)
self.set_default_size(400, 400)
app = Gtk.Application()
app.connect('activate', lambda a: Win(a).present())
app.run()
css は自分で定義もできますけどまだ調べていない。
てかこれだけあれば十分だと思うけど。
