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_positionMethode

Syntax: 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) 
  
print("Line : ", end ="") 
print(value) 
   
pyglet.app.run() 

Ausgabe :

Zeile: 0