Существуют ли какие-либо библиотеки инструментов для проклятий с привязками Python? - PullRequest
5 голосов
/ 25 декабря 2011

Я пишу текстовое шестнадцатеричное средство просмотра для забавы и полезности (я намереваюсь добавить подсветку синтаксиса для многих различных типов файлов), и мне интересно, есть ли какие-нибудь наборы инструментов curses, которые я мог бы использовать.

Вероятно, я все равно сам напишу что-нибудь, чтобы ознакомиться с тем, как работают наборы инструментов для графического интерфейса, но было бы неплохо узнать о полезных библиотеках для дальнейшего использования для себя и других.

Ответы [ 3 ]

8 голосов
/ 25 декабря 2011

Urwid - лучшая библиотека для работы с проклятиями и питоном, которую я знаю.

В качестве альтернативы вы можете также найти интересные snack ( newt *Библиотека на основе 1008 *).

Для получения дополнительной информации, пожалуйста, посмотрите на этот вопрос .

3 голосов
/ 16 июля 2017

npyscreen

Npyscreen - это библиотека виджетов Python и инфраструктура приложений для программирования терминальных или консольных приложений. Он построен поверх ncurses, который является частью стандартной библиотеки.

Цель этой библиотеки - обеспечить быстрый способ разработки консольных приложений. Как правило, для добавления элемента управления на экран требуется только одна строка кода.

Этот фреймворк должен быть достаточно мощным, чтобы создавать все, от быстрых простых программ до сложных многоэкранных приложений.

npyscreen screenshot

#!/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()
0 голосов
/ 10 сентября 2015

На GitHub можно бесплатно использовать, изучать, изменять и распространять высокоуровневую библиотеку графического интерфейса высокого уровня по адресу "https://github.com/rigordo959/tsWxGTUI_PyVx_Repository".

. Она реализована в Python 2x & 3x с использованием низкого уровня" curses "Пакет GUI.

Ваши прикладные программы могут быть запрограммированы с использованием подмножества символьного режима API-интерфейса высокого уровня пиксельного режима "wxPython". Он поддерживает дисплеи с вводом с клавиатуры и мыши, а также различные эмуляторы терминала, включая цветовые символы.(8-цветная с 64-цветными парами и 16-цветная с 256-цветными парами) и нецветная vt100 / vt220.

...