GTK4 の基本と外枠のまとめはゴールデンウイークに作った。
細かい Widget はどうするか、ほとんど GTK3 と変わっていないのですし。
でもその時だけ GTK3 のページを見てくれじゃアレなんで少し書き足そうかと。
Gtk(PyGObject) Tips | ラベル – Paepoi
とりあえずコイツの GTK4 化だな。
Gtk.Label
angle プロパティが無くなった以外は特に問題無さそうにみえる。
回転するにはどうするのかな、pango を使えになったのだろうか?
Pango ? 1.0: Text Attributes and Markup
angle に相当するものはないようで。
text_transform に rotate(deg90) はやっぱりダメか。
でも gravity という重力の指定でどの方向が下なのか決めることはできる。
これで 90 度単位な回転ができるっぽい、他も含めてやってみる。
#!/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):
def __init__(self, a):
manager = Adw.StyleManager.get_default()
manager.set_color_scheme(Adw.ColorScheme.DEFAULT)
Gtk.ApplicationWindow.__init__(self, application=a)
# mouse move
labels = [
Gtk.Label(label='中心'),
Gtk.Label(label='左寄せ', xalign=0),
Gtk.Label(label='右寄せ', xalign=1),
#Gtk.Label(label='180度回転', angle=180),
Gtk.Label(label='<s>打ち消し線</s>を入れたり', use_markup=True),
Gtk.Label(label='<span bgcolor="red">赤くする</span>とか', use_markup=True),
Gtk.Label(label='<span fgcolor="blue">青くする</span>とか', use_markup=True),
Gtk.Label(label='<span font_weight="heavy">太くする</span>とか', use_markup=True),
Gtk.Label(label='<span font_style="italic">italic にしたり</span>とか', use_markup=True),
Gtk.Label(label='エスケープ文字も\n\t使えます', xalign=0),
Gtk.Label(label='エスケープ文字を\n\t無効にする', xalign=0, single_line_mode=True),
Gtk.Label(label='薄くする', opacity=0.3),
#
Gtk.Label(label='<span text_transform="uppercase">uppercase</span>とか', use_markup=True),
#Gtk.Label(label='<span text_transform="ratate 45deg">回転</span>Error', use_markup=True),
Gtk.Label(label='<span gravity="north" baseline_shift="13pt">反転</span>とか', use_markup=True),
Gtk.Label(label='<span gravity="west" baseline_shift="8pt">西が下</span>とか', use_markup=True)
]
#
vbox = Gtk.Box(orientation=Gtk.Orientation.VERTICAL)
for label in labels:
vbox.append(label)
vbox.append(Gtk.Separator(orientation=Gtk.Orientation.HORIZONTAL))
#
self.set_child(vbox)
self.set_default_size(200, 200)
app = Gtk.Application()
app.connect('activate', lambda a: Win(a).present())
app.run()
なんとかなった。
baseline_shift に注意、元のベースラインを軸に回転するので上に動かす。
でもコレ環境によるよなぁって、まあ回転は可能ってことで。
それと single_line_mode だと改行が矢印になるんだね、笑った。
今日はコチドリを見つけました、やっとツバメ以外の夏鳥が撮れた。
駐車場でウロウロしていたけどそんな所にミミズいないだろ。
デカいカワセミ、ではなくイソヒヨドリです。
五条川で見たのは二回目、前回は超望遠をもっておらず点でしたけど。