Textual (python) – как добавить событие щелчка в простой текстовый объект?Python

Программы на Python
Ответить
Anonymous
 Textual (python) – как добавить событие щелчка в простой текстовый объект?

Сообщение Anonymous »

Я пытаюсь получить его, чтобы можно было добавлять ссылки в текст, отображаемый с помощью Textual.
В моем тексте может быть несколько ссылок, например:

Код: Выделить всё

Hello [@click=hello]World[/] there, how are you?
This is a test of [@click=more] more info[/] being clickable as well.
В этом простом примере, который я сделал, нажатие на слово «Мир», надеюсь, должно изменить цвет фона на красный, но это не работает.
ПРИМЕЧАНИЕ. Я также привязал клавишу «b» к почти такому же действию, чтобы видеть, как она работает.
Она должна изменить цвет фона и подзаголовок приложения.

Код: Выделить всё

import os
import sys
from rich.console import RenderableType
from rich.panel import Panel
from rich.text import Text
from textual.app import App
from textual.widgets import Header, Footer, ScrollView
from textual.widgets import Placeholder

class MyApp(App):

async def on_load(self) -> None:
await self.bind("b", "color('blue')")

async def on_mount(self) -> None:
await self.view.dock(Header(), size=5, edge="top")
await self.view.dock(Footer(), edge="bottom")
await self.view.dock(ScrollView(Panel("Hello [@click=hello]World[/] more info here")), edge="top")

async def action_color(self, color:str) -> None:
self.app.sub_title = "KEYBOARD"
self.background = f"on {color}"

async def action_hello(self) -> None:
self.app.sub_title = "CLICKED"
self.background = "on red"

MyApp.run(title="Test click", log="textual.log")
Я задавал этот же вопрос в текстовых обсуждениях и изначально насыщенных обсуждениях, но не смог понять, как это сделать, исходя из полученных там отзывов, которые, безусловно, были полезны, но здесь я что-то упускаю, поэтому спасибо за любой вклад.


Подробнее здесь: https://stackoverflow.com/questions/714 ... ext-object
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»