2011-12-25 3 views
5

私は楽しく便利なテキストベースの16進表示を書いています(私は多くの異なるファイルタイプの構文強調表示を追加しようと考えています)、使用できるcursesツールキットがあるかどうか疑問に思っています。Pythonバインディングでcurses用のツールキットライブラリはありますか?

GUIツールキットの使い方をよく理解するために、私はおそらく何か自分自身を書くつもりですが、将来自分自身や他の人に参考になるように便利なライブラリを知っておくとよいでしょう。

答えて

8

Urwidは私が知っているcursesとpythonで動作するのに最適なライブラリです。

また、興味深いことに、snacknewtベースのライブラリ)もあります。

詳細については、questionをご覧ください。

0

GitHubには、 "https://github.com/rigordo959/tsWxGTUI_PyVx_Repository"というハイレベルGUIライブラリを自由に使用、調査、修正、再配布することができます。

「curses」の低レベルGUIパッケージを使用して、Python 2x & 3xで実装されています。

アプリケーションプログラムは、ピクセルモードのwxPythonハイレベルGUI APIの文字モードサブセットを使用してプログラミングできます。これは、キーボードとマウスの入力、カラーxterms(64色ペアの8色、256色ペアの16色)と非カラーvt100/vt220などのさまざまなターミナルエミュレータをサポートしています。

+0

それはあなたのコードだように思えるので - それは本当にひどく、いくつかのコード例を必要とし、正直、レポ名は一種のにもオフ入れています。いずれにせよ、お返事ありがとう、Stack Overflowへようこそ:) – Llamageddon

+0

はい、それは私のコードです.GitHubリポジトリには、APIのソースコードだけでなく、テストやデモンストレーションに使用されたサンプルもあります。私はwxPython APIをエミュレートしているので、wxPythonの紹介とチュートリアルを見ることができます。私の発表には、配布とその使用方法の概要が記載されています。 Python 2xコードは大規模で複雑なもの(10万行以上の実行可能なPython、My Brochureにはスクリーンショット、マイノートブックにはIntroductionとエンジニアリングスタイルの仕様、デザインとユーザードキュメントが含まれています。 –

1

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() 
関連する問題