📌  相关文章
📜  PYGLET - 访问增量文本布局的选择开始属性

📅  最后修改于: 2022-05-13 01:55:23.393000             🧑  作者: Mango

PYGLET - 访问增量文本布局的选择开始属性

在本文中,我们将看到如何在Python中访问 PYGLET 模块中增量文本布局对象的选择开始。 Pyglet 是一个易于使用但功能强大的库,用于开发视觉丰富的 GUI 应用程序,如游戏、多媒体等。窗口是占用操作系统资源的“重量级”对象。 Windows 可能显示为浮动区域,也可以设置为填充整个屏幕(全屏)。增量文本布局显示适合交互式编辑和/或滚动大型文档的文本。与 TextLayout 和 ScrollableTextLayout 不同,此类只为可见的文本行生成顶点列表。随着文档的滚动,顶点列表会被删除并根据需要创建,以将视频内存使用量降至最低并提高渲染速度。选择开始是活动选择的开始位置(独占)。

我们可以在下面给出的命令的帮助下创建一个窗口和增量文本布局

# creating a window
window = pyglet.window.Window(width, height, title)

# creating a incremental layout
layout = pyglet.text.layout.IncrementalTextLayout(document, width, height)
 

下面是实现

Python3
# importing pyglet module
import pyglet
import pyglet.window.key
  
# width of window
width = 500
  
# height of window
height = 500
  
# caption i.e title of the window
title = "Geeksforgeeks"
  
# creating a window
window = pyglet.window.Window(width, height, title)
  
# text
text = "GeeksforGeeks Learn and Grow, Portal for Geeks"
  
# batch object
batch = pyglet.graphics.Batch()
  
# creating a formatted document
# unlike unformatted document it is formatted
document = pyglet.text.document.FormattedDocument(text)
  
# setting style to the document
document.set_style(0, len(document.text), dict(font_name ='Arial',
                     font_size = 16, color =(255, 255, 255, 255)))
  
# creating a incremental text layout
layout = pyglet.text.layout.IncrementalTextLayout(document, 400,
                           350, multiline = True, batch = batch)
  
# creating a caret
caret = pyglet.text.caret.Caret(layout, color =(150, 255, 150))
  
  
  
# caret to window push handlers
window.push_handlers(caret)
  
# setting caret style
caret.set_style(dict(font_name ="Arial"))
 
# layout update event
@window.event
def on_layout_update():
     
    # printing text
    print("Layout update Event")
  
# on draw event
@window.event
def on_draw():
      
    # clear the window
    window.clear()
      
    # draw the batch
    batch.draw()
      
    # caret to window push handlers
    window.push_handlers(caret)
  
      
# key press event   
@window.event
def on_key_press(symbol, modifier):
  
    # key "C" get press
    if symbol == pyglet.window.key.C:
          
        # closing the window
        # window.close()
        pass
     
# image for icon
img = pyglet.resource.image("gfg.png")
 
# setting image as icon
window.set_icon(img)
 
# accessing selection  color
# assigning new color
layout.selection_color = (100, 255, 100, 255)
 
 
# setting selection range
layout.set_selection(10, 30)
 
# getting start position of selection
value = layout.selection_start
 
# printing value
print("Start position : ", end ="")
print(value)
 
 
  
# start running the application
pyglet.app.run()


输出 :

Start position : 10