- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我在使用库 urwid 时遇到 set_alarm 问题。基本上,当您运行它并在 Chapman 上按回车键时,您将收到以下错误。我对 urwid 了解不多,它似乎缺少文档,我试图寻找示例进行比较,但找不到任何示例。
import urwid
import pyfiglet
class data():
drpepper = pyfiglet.Figlet(font='doom')
choices = u'Chapman Cleese Gilliam Idle Jones Palin'.split()
def menu(self, title, choices):
body = [urwid.Text(title), urwid.Divider()]
for c in choices:
button = urwid.Button(c)
if c == "Chapman":
urwid.connect_signal(button, 'click', self.info, c)
body.append(urwid.AttrMap(button, None, focus_map='reversed'))
return urwid.ListBox(urwid.SimpleFocusListWalker(body))
def item_chosen(self, button, choice):
response = urwid.Text([u'You chose ', choice, u'\n'])
done = urwid.Button(u'Ok')
urwid.connect_signal(done, 'click', info)
main.original_widget = urwid.Filler(urwid.Pile([response, urwid.AttrMap(done, None, focus_map='reversed')]))
def info(self, button, choice):
response = urwid.Text(self.drpepper.renderText("text"), align="center")
response2 = urwid.Text("Test")
with open("/home/jt/works?.txt", "a+") as data:
data.write("THIS IS A TEST 2")
done = urwid.Button(u'Ok')
self.main.original_widget = urwid.Filler(urwid.Pile([self.loop.set_alarm_in(5, response), response2]))
def exit_program(self, button):
raise urwid.ExitMainLoop()
def mainish(self):
main = urwid.Padding(self.menu(u'Pythons', self.choices), left=2, right=2)
top = urwid.Overlay(main, urwid.SolidFill(u'\N{MEDIUM SHADE}'),
align='center', width=('relative', 60),
valign='middle', height=('relative', 60),
min_width=20, min_height=9)
self.loop = urwid.MainLoop(top, palette=[('reversed', 'standout', '')])
self.loop.run()
开始=数据()开始.mainish()
这是错误
▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒ < Traceback (most recent call last):
File "urwidtest.py", line 46, in <module>▒▒▒▒ < Cleese
crap.mainish()▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒ < Gilliam
File "urwidtest.py", line 42, in mainish▒▒▒▒▒ < Idle
self.loop.run()▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒ < Jones
File "/usr/local/lib/python3.4/dist-packages/urwid/main_loop.py", line 278, in run
self._run()▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
File "/usr/local/lib/python3.4/dist-packages/urwid/main_loop.py", line 375, in _run
self.event_loop.run()▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
File "/usr/local/lib/python3.4/dist-packages/urwid/main_loop.py", line 678, in run
self._loop()▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
File "/usr/local/lib/python3.4/dist-packages/urwid/main_loop.py", line 715, in _loop
self._watch_files[fd]()▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
File "/usr/local/lib/python3.4/dist-packages/urwid/raw_display.py", line 392, in <lambda>
event_loop, callback, self.get_available_raw_input())
File "/usr/local/lib/python3.4/dist-packages/urwid/raw_display.py", line 492, in parse_input
callback(processed, processed_codes)▒▒▒▒▒▒▒
File "/usr/local/lib/python3.4/dist-packages/urwid/main_loop.py", line 399, in _update
self.process_input(keys)▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
File "/usr/local/lib/python3.4/dist-packages/urwid/main_loop.py", line 499, in process_input
k = self._topmost_widget.keypress(self.screen_size, k)
File "/usr/local/lib/python3.4/dist-packages/urwid/container.py", line 592, in keypress
*self.calculate_padding_filler(size, True)), key)
File "/usr/local/lib/python3.4/dist-packages/urwid/decoration.py", line 621, in keypress
return self._original_widget.keypress(maxvals, key)
File "/usr/local/lib/python3.4/dist-packages/urwid/listbox.py", line 985, in keypress
key = focus_widget.keypress((maxcol,),key)▒
File "/usr/local/lib/python3.4/dist-packages/urwid/wimp.py", line 535, in keypress
self._emit('click')▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
File "/usr/local/lib/python3.4/dist-packages/urwid/widget.py", line 463, in _emit
signals.emit_signal(self, name, self, *args)
File "/usr/local/lib/python3.4/dist-packages/urwid/signals.py", line 264, in emit
result |= self._call_callback(callback, user_arg, user_args, args)
File "/usr/local/lib/python3.4/dist-packages/urwid/signals.py", line 294, in _call_callback▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
return bool(callback(*args_to_pass))▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
File "urwidtest.py", line 30, in info▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
self.main.original_widget = urwid.Filler(urwid.Pile([self.loop.set_alarm_in(5, response), response2]))▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
File "/usr/local/lib/python3.4/dist-packages/urwid/container.py", line 1253, in __init__▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
if focus_item is None and w.selectable():▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
AttributeError: 'function' object has no attribute 'selectable'▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
最佳答案
经过一千次组合,我终于明白了。知识?我随机地将黑客代码放在一起,直到它最终像暴力猜测一样起作用。
最后,在经历了无休止的几个小时之后,你们可能需要几分钟才能发布一些东西。我喜欢 python 的支持社区(讽刺)……我喜欢人们声称在我无法得到答案时它有一个很棒的支持社区。
好了,废话到此结束。这是为那些正在苦苦挣扎的人准备的,因为没有其他人可以帮助您。
self.main.original_widget = urwid.Filler(urwid.Pile([self.loop.set_alarm_in(5, response), response2]))
在这里你看到 main.original_widget 清除屏幕并保留在一个地方。我无法解释清楚原因,因为没有人会提供帮助。但是,我意识到你必须创建一个储备。
它需要文本编辑或其他东西。您不能调用小部件内部的函数。为什么?没有线索。询问 Urwid 社区你是否能得到一个单一的回应。继续前进
通过创建一个保留,您创建了一个 var say "self.x = urwid.Text("")",其中没有任何内容,我认为它会保留它。之后,您通过创建 say self.test.set_alarm_in(4) 来创建警报
然后它将在 4 秒左右的时间内调用函数 test()。所以你可以轻松地放置 self.x.set_text("hello world") 它应该可以工作。
关于set_alarm 的 Python Urwid 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30963478/
尝试在 ListBox 顶部添加 BigText 时,我不断收到错误 AttributeError: 'BigText' object has no attribute 'rows'。我知道 BigT
在 urwid 中,如何动态更改调色板的颜色?例如,假设我想在按下“C”按钮时进行更改: import urwid def changeColor(key): if key in ('c',
我正在使用 urwid 设计一个 curses ui。我可以使用显示属性将文本显示为粗体、下划线或突出显示。是否可以使用斜体? 最佳答案 简答 理论上,是的。 在实践中:还没有。 长答案 基本上,cu
当用户按下 H 键时,我试图在我的 urwid 应用程序顶部显示一个帮助对话框,但我似乎无法让它消失。它显示没有问题。我错过了什么?我一整天都在做这件事。 我看过几个描述不同实现方法的例子。我玩过信号
我正在尝试使一个简单的 urwid 成为无限循环的输出屏幕。它需要输出来自另一个类的数据。 我现在找到的解决方案是:拥有一个带有 queue 属性的 Printer 类(实际输出类的测试替换器)。当它
我正在 urwid 中创建一个列表框,其中每个项目都是从 URL 列表中提取的 URL。当选择一个项目并单击 ENTER 时,我想提取 URL 并在浏览器中打开它。到目前为止,这是我的代码: clas
是否可以跟踪 urwid.ListBox 对象中高亮项的变化?或者甚至通过 ListWalker 对象? 我想在用户使用箭头键 [🠉]、[🠋] 从一个项目移动到另一个项目时调用回调,不是 当用户在
我正在使用 urwid,这是一个用于在 ncurses 中设计终端用户界面的 Python“框架”。不过有一件事我不能在 urwid 中做,而这在 curses 中很容易——使光标不可见。就像现在一样
我正在使用 urwid 库,到目前为止它非常棒。但我无法让进度条工作。我写了一个简单的测试程序,如下所示: import os import urwid # a function that t
我正在构建一个基于 Horizontal Menu 的应用程序来自 Urwid 的示例。我有一个项目,我想显示一些信息。我在下方有一个“确定”按钮,我希望它可以将菜单弹出回到之前的状态,或者重新启动整
有没有办法向用户显示 urwid 列表框在显示部分的上方/下方有其他项目? 我正在考虑类似滚动条的东西,它可以显示条目的数量。 或列表框顶部/底部的单独栏。 如果这个行为不能实现,有什么方法可以实现这
我正在用 Python 开发一个聊天程序,想为我的客户端添加一些用户友好的界面。事实是我给了自己挑战仅使用终端。 所以我找到了可以使用的 urwid 模块,它是跨平台的并且在网上有详细的文档。 看完模
我正在使用 Urwid 按钮,想知道是否有办法直接在按钮上处理按键事件? urwid.Button((item["customer"] + "/ " + item["case"]), button_p
我想实现一些提示,以确定当我向上或向下滚动时 urwid.ListBox 中的可见项目列表下方或上方是否仍有项目。仅当最后一个可见项目之后还有剩余项目时,“向下滚动”提示才应出现;当最后一个可见项目是
如果我进行以下调用: from urwid import raw_display cols, rows = raw_display.Screen().get_cols_rows() ... 文件描述符
我正在尝试编写一个具有不同 View 的程序。 我试图创建一个类来处理带有 urwid 的不同 View ,同时将 View 代码与其余部分分开。但经过多次不同的尝试,我不知道从哪里开始了。 我需要哪
与 urwid 混淆了。通过调整其中一个 urwid 示例,我得到了初始屏幕,并希望在按下 F5 键时执行 run_stuff() 函数,并显示指示 run_stuff() 正在运行并最终完成的消息(
我目前的权宜之计是将日志记录到一个文本文件中,但这不是很互动。我试过使用 pdb ,但这似乎与 urwid 不一致,pdb 一旦遇到断点就不会接受任何输入。 最佳答案 几个实践......调试 urw
是否可以将 ListBoxes 放入 SimpleListWalkers 中?我正在尝试制作嵌套的列表框,但出现此错误: AttributeError: 'MyListBox' 对象没有属性 'row
作为 Python 和 urwid 的新手,我尝试了这里的教程示例 http://excess.org/urwid/docs/tutorial/ 然而,虽然第一个确实工作正常,但大多数后来的似乎都不起
我是一名优秀的程序员,十分优秀!