File: text.py

package info (click to toggle)
pycairo 1.27.0-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 1,984 kB
  • sloc: ansic: 8,873; python: 3,688; makefile: 32; sh: 4
file content (45 lines) | stat: -rw-r--r-- 1,040 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
import gi

gi.require_version("Adw", "1")
gi.require_version("Gtk", "4.0")
from gi.repository import Adw, Gtk


def draw_event(widget, ctx, w, h, data):
    ctx.set_line_width(6)
    ctx.set_tolerance(0.1)

    ctx.select_font_face("sans-serif")
    ctx.set_font_size(48)
    (x, y, width, height, dx, dy) = ctx.text_extents("Hello World")

    ctx.translate(100, 100)

    ctx.new_path()
    ctx.move_to(x - 10, y - 10)
    ctx.rel_line_to(width + 20, 0)
    ctx.rel_line_to(0, height + 20)
    ctx.rel_line_to(-(width + 20), 0)
    ctx.close_path()
    ctx.set_source_rgb(0, 0, 1)
    ctx.stroke()

    ctx.move_to(0, 0)
    ctx.set_source_rgb(0, 0, 0)
    ctx.show_text("Hello World")


def on_activate(app):
    win = Gtk.ApplicationWindow(application=app, title="Cairo GTK Text Example")
    win.set_default_size(450, 150)

    drawingarea = Gtk.DrawingArea()
    drawingarea.set_draw_func(draw_event, None)
    win.set_child(drawingarea)
    win.present()


app = Adw.Application()
app.connect("activate", on_activate)

app.run(None)