Fedora 36 には adwaita-1-demo が最初から入っていると以前書いた。
GTK Demo(gtk4-demo) は gnome-softwere から入手できるので入れてみる。
なんか勝手に 4 ヶも入ってしまったけどまあいい。
こっちはソースが直接見られるので解りやすいですね。
TextView は文字列中に Widget を入れることができるのか。
よし PyGObject でやってみよう。
#!/usr/bin/env python3 import gi gi.require_version('Gtk', '4.0') from gi.repository import Gtk class Win(Gtk.ApplicationWindow): ''' GTK4: TextView in Button ''' def __init__(self, a): Gtk.ApplicationWindow.__init__(self, application=a) # Button button = Gtk.Button(label='Button') button.connect('clicked', self.on_button_clicked) # TextView self.view = Gtk.TextView() buf = self.view.get_buffer() it = buf.get_start_iter() buf.insert(it, 'This') anchor = buf.create_child_anchor(it) self.view.add_child_at_anchor(button, anchor) buf.insert(it, 'click!') # pack sw = Gtk.ScrolledWindow() sw.set_child(self.view) self.set_child(sw) self.set_default_size(400, 300) def on_button_clicked(self, button): with open(__file__) as f: s = f.read() self.view.props.buffer.set_text(s) def app_activate(a): w = Win(a) w.present() app = Gtk.Application() app.connect('activate', app_activate) app.run()
マジでできた、必要性は疑問だけど。
他 tag の利用方法なんかもコレで解るね。
GTK4 はこんな感じで勉強すればいいと思います。
ところで SVG エディタなんだけど。
Vectornator という Mac のアプリを使うことにしました。
M1 Mac なのに Raw 現像専用じゃもったいない。