mirror of
https://github.com/Textualize/textual.git
synced 2025-10-17 02:38:12 +03:00
keys command
This commit is contained in:
@@ -123,3 +123,11 @@ def colors():
|
|||||||
from textual.cli.previews import colors
|
from textual.cli.previews import colors
|
||||||
|
|
||||||
colors.app.run()
|
colors.app.run()
|
||||||
|
|
||||||
|
|
||||||
|
@run.command("keys")
|
||||||
|
def keys():
|
||||||
|
"""Show key events"""
|
||||||
|
from textual.cli.previews import keys
|
||||||
|
|
||||||
|
keys.app.run()
|
||||||
|
|||||||
37
src/textual/cli/previews/keys.py
Normal file
37
src/textual/cli/previews/keys.py
Normal file
@@ -0,0 +1,37 @@
|
|||||||
|
from rich.panel import Panel
|
||||||
|
|
||||||
|
from textual.app import App, ComposeResult
|
||||||
|
from textual import events
|
||||||
|
from textual.widgets import Header, Footer, TextLog
|
||||||
|
|
||||||
|
|
||||||
|
class KeyLog(TextLog, inherit_bindings=False):
|
||||||
|
"""We don't want to handle scroll keys."""
|
||||||
|
|
||||||
|
|
||||||
|
class KeysApp(App):
|
||||||
|
"""Show key events in a text log."""
|
||||||
|
|
||||||
|
TITLE = "Textual Keys"
|
||||||
|
|
||||||
|
BINDINGS = [("c", "clear", "Clear")]
|
||||||
|
|
||||||
|
def compose(self) -> ComposeResult:
|
||||||
|
yield Header()
|
||||||
|
yield Footer()
|
||||||
|
yield KeyLog()
|
||||||
|
|
||||||
|
def on_ready(self) -> None:
|
||||||
|
self.query_one(KeyLog).write(Panel("Press some keys!"))
|
||||||
|
|
||||||
|
def on_key(self, event: events.Key) -> None:
|
||||||
|
self.query_one(KeyLog).write(event)
|
||||||
|
|
||||||
|
def action_clear(self) -> None:
|
||||||
|
self.query_one(KeyLog).clear()
|
||||||
|
|
||||||
|
|
||||||
|
app = KeysApp()
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
app.run()
|
||||||
@@ -209,7 +209,9 @@ class Key(InputEvent):
|
|||||||
|
|
||||||
def __rich_repr__(self) -> rich.repr.Result:
|
def __rich_repr__(self) -> rich.repr.Result:
|
||||||
yield "key", self.key
|
yield "key", self.key
|
||||||
yield "char", self.char, None
|
yield "char", self.char
|
||||||
|
yield "is_printable", self.is_printable
|
||||||
|
yield "key_aliases", self.key_aliases, [self.key_name]
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def key_name(self) -> str | None:
|
def key_name(self) -> str | None:
|
||||||
|
|||||||
Reference in New Issue
Block a user