是否有任何用于使用 Python 绑定进行诅咒的工具包库?
Posted
技术标签:
【中文标题】是否有任何用于使用 Python 绑定进行诅咒的工具包库?【英文标题】:Are there any toolkit libraries for curses with Python bindings? 【发布时间】:2012-01-27 16:48:46 【问题描述】:我正在编写一个基于文本的十六进制查看器,既有趣又实用(我打算为许多不同的文件类型添加语法突出显示),并且想知道是否有任何我可以使用的 curses 工具包。
无论如何,我可能会自己编写一些东西来熟悉 gui 工具包的工作方式,但如果知道有用的库以供我自己和其他人将来参考,那就太好了。
【问题讨论】:
【参考方案1】:Urwid 是我所知道的最适合使用 curses 和 python 的库。
另外,您可能还会发现有趣的snack(基于newt 的库)。
欲了解更多信息,请查看此question。
【讨论】:
小吃链接坏了 @shadi 看起来零食现在可能包含在蝾螈本身中:github.com/mlichvar/newt/blob/master/snack.py 我明白了。 newt wiki 页面上链接的教程也已损坏 (tutorial link),并且 newt 主页没有任何文档或链接。知道在哪里可以找到关于蝾螈的文档吗? @shadi 在 Internet 存档中,您仍然可以找到该教程的备份版本吗? web.archive.org/web/20170124075941/http://gnewt.sourceforge.net/…【参考方案2】:npyscreen
Npyscreen 是一个 Python 小部件库和应用程序框架,用于编程终端或控制台应用程序。它建立在ncurses
之上,它是标准库的一部分。
这个库的重点是提供一种快速开发控制台应用程序的方法。一般来说,在屏幕上添加一个控件只需要一行代码。
这个框架应该足够强大,可以创建从快速、简单的程序到复杂的多屏应用程序。
#!/usr/bin/env python
# encoding: utf-8
import npyscreen
class TestApp(npyscreen.NPSApp):
def main(self):
# These lines create the form and populate it with widgets.
# A fairly complex screen in only 8 or so lines of code - a line for each control.
F = npyscreen.Form(name = "Welcome to Npyscreen",)
t = F.add(npyscreen.TitleText, name = "Text:",)
fn = F.add(npyscreen.TitleFilename, name = "Filename:")
fn2 = F.add(npyscreen.TitleFilenameCombo, name="Filename2:")
dt = F.add(npyscreen.TitleDateCombo, name = "Date:")
s = F.add(npyscreen.TitleSlider, out_of=12, name = "Slider")
ml = F.add(npyscreen.MultiLineEdit,
value = """try typing here!\nMutiline text, press ^R to reformat.\n""",
max_height=5, rely=9)
ms = F.add(npyscreen.TitleSelectOne, max_height=4, value = [1,], name="Pick One",
values = ["Option1","Option2","Option3"], scroll_exit=True)
ms2= F.add(npyscreen.TitleMultiSelect, max_height =-2, value = [1,], name="Pick Several",
values = ["Option1","Option2","Option3"], scroll_exit=True)
# This lets the user interact with the Form.
F.edit()
print(ms.get_selected_objects())
if __name__ == "__main__":
App = TestApp()
App.run()
【讨论】:
【参考方案3】:在 GitHub 上有一个免费使用、学习、修改和重新分发高级 GUI 库,地址为“https://github.com/rigordo959/tsWxGTUI_PyVx_Repository”。
它是在 Python 2x 和 3x 中使用“curses”低级 GUI 包实现的。
您的应用程序可以使用像素模式“wxPython”高级 GUI API 的字符模式子集进行编程。它支持带有键盘和鼠标输入的显示器以及各种终端仿真器,包括彩色 xterms(8 色与 64 色对和 16 色与 256 色对)和非彩色 vt100/vt220。
【讨论】:
因为它看起来像是你的代码 - 它确实非常需要一些代码示例,老实说,repo 名称也有点令人反感。不管怎样,谢谢你的回答,欢迎来到 Stack Overflow :) 是的,这是我的代码,在 GitHub 存储库中,您不仅可以找到 API 的源代码,还可以找到用于测试和演示它的示例的源代码。由于我正在模拟 wxPython API,您可以查看 wxPython 的介绍和教程。我的公告提供了分发及其使用的概述。 Python 2x 代码庞大而复杂(超过 100,000 行可执行 Python。我的手册提供了屏幕截图;我的笔记本包括简介和工程风格规范、设计和用户文档。以上是关于是否有任何用于使用 Python 绑定进行诅咒的工具包库?的主要内容,如果未能解决你的问题,请参考以下文章