2011-09-11 8 views
10

SL4Aには基本的なGUI機能はありますか? Android上でPythonプログラムを実行したいと思います。リストボックスと簡単なダイアログ(情報を表示して入力を得る)が必要です。アンドロイドpythonスクリプト:GUI?

単純なダイアログがあるようですが、リストボックスが見つかりませんでした。リストボックスがなければ、テキストを書いたり、画面の特定の部分に矩形をハイライトしたり、ユーザーが画面に触れることや、入力したことに反応するようにすることができます(ユーザーがどこに触れたか、カーソルは)。

答えて

11

基本的にあなたが行うことができる3つの事柄があります:あなたは、まさにこのようなユーザーの入力を取得し(例えば、ユーザ名とパスワード)またはオプションのリストを示すような単純なAndroidのリストや入力を、必要な場合

  1. は、選択することが、その後、いくつかのチュートリアルはここにありますhttp://code.google.com/p/android-scripting/wiki/UiExamples

  2. あなたは(つまり、ユーザーがそれを選択していない)情報を表示したい場合は、WebViewの中にHTMLを表示しようとすると、イベントを経由して応答することができる:http://code.google.com/p/android-scripting/wiki/UsingWebView

    これを行うと、JavaScriptでdroid.eventPost(eventName,eventData);、Pythonでdroid.eventWaitFor(eventName).resultを使用することで、イベントを介して機能が制限されます。受信したデータを使用して、必要な操作を行うことができます。

  3. 最新の非公式リリースには、完全なAndroidレイアウト(ネイティブAndroidアプリに見られるようなXMLで作成されたもの)のサポートが含まれています。あなたはここのためのガイドを見つけることができます。http://code.google.com/p/android-scripting/wiki/FullScreenUI

10

あなたは、Android/iOS版/ Linuxの/ Windowsの/ MacでPythonのGUIソリューションをkivy使用することができますしたい場合は...その素敵! kivy.org

+1

でコードを実行します。それのような他はありません! – foosion

+0

それは素晴らしいですが、それはLinux用のreposの多くにはありません。 – RobotHumans

3

高速で強力なオプションがREBOL 3を使用することですあなたはSL4a機能を使用することができますが、する必要はありません。ここで

http://business-programming.com/business_programming.html#section-18

のGUIと10の完全に機能するデモプログラム、あります。これらは、の正確なコードを使用して、のいずれかが変更されていないAndroidおよびデスクトップOSで実行されます。十代の小さなスクリプト、そして死んだシンプルなもの。

REBOL [] 
load-gui 
view [text "Hello World!"] 


REBOL [title: "Tiny Note Editor"] 
do %r3-gui.r3 ; download this file manually or just use load-gui as above 
view [ 
    a1: area 
    button "Save" on-action [write %notes.txt get-face a1] 
    button "Load" on-action [set-face a1 to-string read %notes.txt] 
] 


REBOL [title: "Data Entry to CSV File"] 
do %r3-gui.r3 
view [ 
    text "First Name:" 
    f1: field 
    text "Last Name:" 
    f2: field 
    button "Submit" on-action [ 
     write/append %cntcts.txt rejoin [ 
      mold get-face f1 " " mold get-face f2 newline 
     ] 
     request "" "Saved" 
    ] 
    a1: area 
    button "Load" on-action [set-face a1 to-string read %cntcts.txt] 
] 


REBOL [title: "Text File Reader (How to use a text list file selector)"] 
do %r3-gui.r3 
view [ 
    a1: area 
    button "Load" on-action [ 
     files: read %./ 
     view/modal [ 
      text "File Name:" 
      t2: text-list files on-action [ 
       set-face a1 to-string read(to-file pick files get-face t2) 
       unview 
      ] 
     ] 
    ] 
] 


REBOL [title: "List-View (Grid) Example"] 
do %r3-gui.r3 
view [ 
    text-table ["1" 200 "2" 100 "3"][ 
     ["asdf" "a" "4"] 
     ["sdfg" "b" "3"] 
     ["dfgh" "c" "2"] 
     ["fghj" "d" "1"] 
    ] 
] 


REBOL [title: "Calculator"] 
do %r3-gui.r3 
stylize [ 
    btn: button [ 
     facets: [init-size: 50x50] 
     actors: [on-action:[set-face f join get-face f get-face face]] 
    ] 
] 
view [ 
    hgroup [ 
     f: field return 
     btn "1" btn "2" btn "3" btn " + " return 
     btn "4" btn "5" btn "6" btn " - " return 
     btn "7" btn "8" btn "9" btn " * " return 
     btn "0" btn "." btn "/" btn "=" on-action [ 
      attempt [set-face f form do get-face f] 
     ] 
    ] 
] 


REBOL [title: "Sliding Tile Puzzle"] 
do %r3-gui.r3 
stylize [ 
    p: button [ 
     facets: [init-size: 60x60 max-size: 60x60] 
     actors: [ 
      on-action: [ 
       t: face/gob/offset 
       face/gob/offset: x/gob/offset 
       x/gob/offset: t 
      ] 
     ] 
    ] 
] 
view/options [ 
    hgroup [ 
     p "8" p "7" p "6" return 
     p "5" p "4" p "3" return 
     p "2" p "1" x: box 60x60 white 
    ] 
] [bg-color: white] 


REBOL [title: "Math Test"] 
do %r3-gui.r3 
random/seed now 
x: does [rejoin [random 10 " + " random 20]] 
view [ 
    f1: field (x) 
    text "Answer:" 
    f2: field on-action [ 
     either (get-face f2) = (form do get-face f1) [ 
      request "Yes!" "Yes!"][request "No!" "No!" 
     ] 
     set-face f1 x 
     set-face f2 "" 
     focus f2 
    ] 
] 


REBOL [title: "Minimal Cash Register"] 
do %r3-gui.r3 
stylize [fld: field [init-size: 80]] 
view [ 
    hgroup [ 
     text "Cashier:" cashier: fld 
     text "Item:"  item: fld 
     text "Price:"  price: fld on-action [ 
      if error? try [to-money get-face price] [ 
       request "Error" "Price error" 
       return none 
      ] 
      set-face a rejoin [ 
       get-face a mold get-face item tab get-face price newline 
      ] 
      set-face item copy "" set-face price copy "" 
      sum: 0 
      foreach [item price] load get-face a [ 
       sum: sum + to-money price 
      ] 
      set-face subtotal form sum 
      set-face tax form sum * .06 
      set-face total form sum * 1.06 
      focus item 
     ] 
     return 
     a: area 600x300 
     return 
     text "Subtotal:" subtotal: fld 
     text "Tax:"  tax: fld 
     text "Total:"  total: fld 
     button "Save" on-action [ 
      items: replace/all (mold load get-face a) newline " " 
      write/append %sales.txt rejoin [ 
       items newline get-face cashier newline now/date newline 
      ] 
      set-face item copy "" set-face price copy "" 
      set-face a copy "" set-face subtotal copy "" 
      set-face tax copy "" set-face total copy "" 
     ] 
    ] 
] 


REBOL [title: "Requestors"] 
do %r3-gui.r3 
x: request/ask "Question" "Do you like this?." 
either x = false [print "No!"] [print "Yes!"] 
x: request/custom "" "Do you like this?" ["Yay" "Boo"] 
either x = false [print "Boo!"] [print "Yay!"] 
view [button "Click me" on-action[request "Ok" "You clicked the button."]] 

あなたはSL4aからREBOLの機能を使用したり、追加したい場合は、単に偉大に見える、文書の閲覧に基づいてhttps://raw.github.com/gchiu/Rebol3/master/protocols/prot-sl4a.r3