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_lineMethode

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

Ausgabe :

Linienpunkt: (0, 305)