PYGLET - Punkt aus der Linie im inkrementellen Textlayout abrufen
In diesem Artikel werden wir sehen, wie wir den Punkt der Linie im inkrementellen Textlayoutobjekt im PYGLET-Modul in Python erhalten können. Pyglet ist einfach zu bedienen, aber eine leistungsstarke Bibliothek für die Entwicklung visuell reichhaltiger GUI-Anwendungen wie Spiele, Multimedia usw. Ein Fenster ist ein „schweres“ Objekt, das Betriebssystemressourcen belegt. Windows kann als schwebende Bereiche angezeigt werden oder so eingestellt werden, dass ein ganzer Bildschirm (Vollbild) ausgefüllt wird. Inkrementelles Textlayout zeigt Text an, der zum interaktiven Bearbeiten und / oder Scrollen großer Dokumente geeignet ist. Im Gegensatz zu TextLayout und ScrollableTextLayout generiert diese Klasse nur Scheitelpunktlisten für sichtbare Textzeilen. Beim Scrollen des Dokuments werden Scheitelpunktlisten gelöscht und entsprechend erstellt, um die Nutzung des Videospeichers auf ein Minimum zu beschränken und die Rendergeschwindigkeit zu verbessern. Der Linienpunkt ist die X, y-Koordinate der gegebenen Linie.
Mit Hilfe der folgenden Befehle können wir ein Fenster und ein inkrementelles Textlayout erstellen
# ein Fenster erstellen window = pyglet.window.Window (Breite, Höhe, Titel) # ein in erstellen layout = pyglet.text.layout.IncrementalTextLayout (Dokument, Breite, Höhe)
Um ein Fenster zu erstellen, verwenden wir die
get_point_from_line
MethodeSyntax: layout.get_point_from_line (line)
Argument: Es wird eine Ganzzahl als Argument verwendet
Rückgabe: Es wird ein Tupel zurückgegeben
Unten ist die Implementierung
import
pyglet
import
pyglet.window.key
width
=
500
height
=
500
title
=
"Geeksforgeeks"
window
=
pyglet.window.Window(width, height, title)
text
=
"GeeksforGeeks Learn and Grow, Portal for Geeks"
batch
=
pyglet.graphics.Batch()
document
=
pyglet.text.document.FormattedDocument(text)
document.set_style(
0
,
len
(document.text),
dict
(font_name
=
'Arial'
, font_size
=
16
, color
=
(
255
,
255
,
255
,
255
)))
layout
=
pyglet.text.layout.IncrementalTextLayout(document,
400
,
350
, multiline
=
True
, batch
=
batch)
caret
=
pyglet.text.caret.Caret(layout, color
=
(
150
,
255
,
150
))
window.push_handlers(caret)
caret.set_style(
dict
(font_name
=
"Arial"
))
@window
.event
def
on_draw():
window.clear()
batch.draw()
window.push_handlers(caret)
@window
.event
def
on_key_press(symbol, modifier):
if
symbol
=
=
pyglet.window.key.C:
pass
img
=
pyglet.resource.image(
"gfg.png"
)
window.set_icon(img)
value
=
layout.get_point_from_line(
1
)
(
"Point of Line : "
, end
=
"")
(value)
pyglet.app.run()
Ausgabe :
Linienpunkt: (0, 305)