PYGLET - Abrufen der Linie von der Position im inkrementellen Textlayout
In diesem Artikel werden wir sehen, wie wir die Linie von der Position 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. Die Linie ist die Linie, die der Position des Zeichens am nächsten liegt
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_line_from_position
MethodeSyntax: layout.get_line_from_position (position)
Argument: Es wird eine Ganzzahl als Argument verwendet
Rückgabe: Es wird eine Ganzzahl 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_line_from_position(
20
)
(
"Line : "
, end
=
"")
(value)
pyglet.app.run()
Ausgabe :
Zeile: 0