GUI Scrollable Text#
For an introduction the GUI system, see GUI Concepts.
gui_scrollable_text.py#
1"""
2If Python and Arcade are installed, this example can be run from the command line with:
3python -m arcade.examples.gui_scrollable_text
4"""
5from arcade.gui.nine_patch import NinePatchTexture
6
7import arcade
8from arcade import load_texture
9from arcade.gui import UIManager, UIInputText, UITextArea
10
11LOREM_IPSUM = (
12 "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent eget pellentesque velit. "
13 "Nam eu rhoncus nulla. Fusce ornare libero eget ex vulputate, vitae mattis orci eleifend. "
14 "Donec quis volutpat arcu. Proin lacinia velit id imperdiet ultrices. Fusce porta magna leo, "
15 "non maximus justo facilisis vel. Duis pretium sem ut eros scelerisque, a dignissim ante "
16 "pellentesque. Cras rutrum aliquam fermentum. Donec id mollis mi.\n"
17 "\n"
18 "Nullam vitae nunc aliquet, lobortis purus eget, porttitor purus. Curabitur feugiat purus sit "
19 "amet finibus accumsan. Proin varius, enim in pretium pulvinar, augue erat pellentesque ipsum, "
20 "sit amet varius leo risus quis tellus. Donec posuere ligula risus, et scelerisque nibh cursus "
21 "ac. Mauris feugiat tortor turpis, vitae imperdiet mi euismod aliquam. Fusce vel ligula volutpat, "
22 "finibus sapien in, lacinia lorem. Proin tincidunt gravida nisl in pellentesque. Aenean sed "
23 "arcu ipsum. Vivamus quam arcu, elementum nec auctor non, convallis non elit. Maecenas id "
24 "scelerisque lectus. Vivamus eget sem tristique, dictum lorem eget, maximus leo. Mauris lorem "
25 "tellus, molestie eu orci ut, porta aliquam est. Nullam lobortis tempor magna, egestas lacinia lectus.\n"
26)
27
28
29class MyWindow(arcade.Window):
30 def __init__(self):
31 super().__init__(800, 600, "Scrollable Text", resizable=True)
32 self.manager = UIManager()
33 self.manager.enable()
34 arcade.set_background_color(arcade.color.DARK_BLUE_GRAY)
35
36 bg_tex = NinePatchTexture(
37 left=5,
38 right=5,
39 top=5,
40 bottom=5,
41 texture=load_texture(":resources:gui_basic_assets/window/grey_panel.png"))
42 text_area = UITextArea(
43 x=100,
44 y=200,
45 width=200,
46 height=300,
47 text=LOREM_IPSUM,
48 text_color=(0, 0, 0, 255),
49 )
50
51 self.manager.add(text_area.with_padding(all=15).with_background(texture=bg_tex))
52
53 self.manager.add(
54 UIInputText(x=340, y=200, width=200, height=50, text="Hello")
55 .with_background(texture=bg_tex)
56 .with_padding(all=10)
57 )
58
59 self.manager.add(
60 UIInputText(x=340, y=110, width=200, height=50, text="").with_border(),
61 )
62
63 def on_draw(self):
64 self.clear()
65 self.manager.draw()
66
67
68window = MyWindow()
69arcade.run()