我们从Python开源项目中,提取了以下5个代码示例,用于说明如何使用urwid.AsyncioEventLoop()。
def demo1(): """Plain old urwid app. Just happens to be run atop asyncio as the event loop. Note that the clock is updated using the asyncio loop directly, not via any of urwid's facilities. """ main_widget = build_widgets() urwid_loop = urwid.MainLoop( main_widget, event_loop=urwid.AsyncioEventLoop(loop=loop), unhandled_input=unhandled, ) urwid_loop.run() # ----------------------------------------------------------------------------- # Demo 2
def connection_made(self, transport): print("Got a client!") self.transport = transport # StreamReader is super convenient here; it has a regular method on our # end (feed_data), and a coroutine on the other end that will # faux-block until there's data to be read. We could also just call a # method directly on the screen, but this keeps the screen somewhat # separate from the protocol. self.reader = asyncio.StreamReader(loop=loop) screen = AsyncScreen(self.reader, transport) main_widget = build_widgets() self.urwid_loop = urwid.MainLoop( main_widget, event_loop=urwid.AsyncioEventLoop(loop=loop), screen=screen, unhandled_input=unhandled, ) self.urwid_loop.start()
def __init__(self, pubpen, cli_args): super().__init__(pubpen, cli_args) # Note: We don't have any extra command line args # Windows self.title_card = TitleScreen(pubpen) self.login_screen = LoginScreen(pubpen) self.main_window = MainScreen(pubpen) self.root_win = urwid.Frame(urwid.SolidFill(' ')) # Arrange the widgets self.show_title_card() # Connect to UI events urwid.connect_signal(self.title_card, 'close_title_card', self.show_login_screen) urwid.connect_signal(self.login_screen, 'logged_in', self.show_main_window) # Setup the main loop self.urwid_loop = urwid.MainLoop(self.root_win, event_loop=urwid.AsyncioEventLoop(loop=self.pubpen.loop), palette=(('reversed', 'standout', ''),),)
def setUp(self): self.evl = urwid.AsyncioEventLoop()
def __init__(self, discord_client): self.discord = discord_client self.tabs = {} self.w_tabs = TabSelector(self) self.frame = urwid.Frame( urwid.Filler( urwid.Text( "????????????????????????????????????\n" "????????????????????????????????????\n" "????????????????????????????????????\n" " v0.2.4\n" " \n" " \n" " < Logging in... Hang tight! > \n" " --------------------------- \n" " \ ^__^ \n" " \ (oo)\_______ \n" " (__)\ )\/\ \n" " ||----w | \n" " || || \n" " \n" " \n" " \n", align=urwid.CENTER)), header=self.w_tabs) HasModal.__init__(self, self.frame) self.urwid_loop = urwid.MainLoop( self.w_placeholder, palette=MainUI.palette, unhandled_input=lambda key: self._keypress(None, key), event_loop=urwid.AsyncioEventLoop(loop=self.discord.loop), pop_ups=True) def refresh(_loop, _data): _loop.draw_screen() _loop.set_alarm_in(2, refresh) self.urwid_loop.set_alarm_in(0.2, refresh) self.urwid_loop.start()