« ブックリーダが故障したかと思ってしまった | トップページ | WEB小説の探し方、検索条件を変えた »

2017年4月24日 (月)

Python:リストのスライドスクロールを有効にする対策をした

2017-04-24(月)曇り

 Nokia E7-00でのPythonスクリプトのテストの件で、残っていた対策の幾つかを実施しました。残っている対策は、前回の記事でリストアップしました。
 前回の記事「Nokia E7-00でのPythonスクリプトのテストを始めた その5

 今回の対策の項目は、リスト画面でのスライドスクロールを有効にする対策です。ここでスライドスクロールと言っている動作とは、リスト画面で指をスライドさせてリストをスクロールさせる動作です。今風の言い方で言うとスワイプですか?用語については、あまり良く知らないのですが、、。

 タッチ画面式の携帯電話(Nokia 5800XM やE7-00)では、OSや内蔵アプリではスライドスクロールは動作するのですが、Pythonで表示しているリストでの、指をスライドさせてのスクロールはうまく動きませんでした。Nokia 5800XMではバーチャルキーボードを導入していたので我慢していましたが、一応キーボードがあるE7-00にはバーチャルキーボードを導入したくなかったので対策を考えてみることにしたものです(バーチャルキーボードが動くかどうか不明だったし)。

 一応操作してみて、一つの事実が分かっています。それは、Pythonが制御している内部的なリストはスクロールしているらしいことです。

Scre000043a
 指をスライドさせても画面上のリストは変化しないのですが、その後、画面に指を振れてみると、その行だけ表示が変わって青く(選択された状態に)なります。その表示をみると番号が進んでいるからスクロールはされているようです。あちこち触ると上記画像のように、おかしな事になります。画面全体の表示が更新されていないからです。
 ということで、画面表示を更新すれば良いのではないかと考えました。余りよい手は思いつかなかったのですが、下記のように対策を入れてみました。

 ・10ミリ秒~50ミリ秒位のタイマをループさせて、タイムアウト毎に画面更新の命令
  を出すことにする。(appuifw.app.body = self.listbox_list)
 これで、とにかく画面更新をすると、画面上のリストをスクロールさせることが出来ました。ただ、機種(OS)やPythonのバージョンに寄って動作が違っています。とりあえずは、E7-00で使えればいいかなと考えました。

----- 機種(OS)やPythonのバージョンでの相違 -------------
     E7-00 (OS :Belle)
       Python 1.4.5  ○
       Python 2.0.0  -  (未テスト、多分大丈夫と期待)

     5800 XM (OS : S60 5th)
       Python 1.4.5  ×(スクロールしない) 注1
       Python 2.0.0  △(スクロールするが反応良くない)

 注1:appuifw2 を導入すると動作が変わるかもしれない
-------------------------------------------------------

Scre000044a_2 Scre000045a
 一つ制限事項が出てしまいました。スライドでのスクロールでは、左のように最後の項目でスクロールが止まりますが、実際はもう一つダミー行がないと、ここまで表示できないのです。右はカーソルキーで最後の行に移ったところです。最後にダミー行を入れています。この行をクリックしても何も動作しないようにはしていますが、、。一応、ここが項目の最後であること表示する行ということにしています。
 リストボックスを使ったスクリプトは多くあるのですが、全部対策する元気はないので、下記の3つを対策することにしました。

 PyMyShell は色々なスクリプトを起動するためのスクリプトですが、メニュー画面と同じようにキーボードを出さなくても良いようにしたかったので対策しました。

 PyFbuiutilは、ファイルやディレクトリ操作が必要なときに、色々なスクリプトがインポートして使うモジュールです。これが対策されていれば対策済みになるスクリプトが多いので対策しました。

 Filebrowser はその名の通りファイルブラウザ(ファイルマネージャ)ですが、これもファイルに対して色々なアプリを動作させるシェルみたいに使うことも多いので対策しました。

 ついでに、以前から分かっている、Python 2.0.0 での問題点も対策しました。

モジュールは例によって「Python スクリプト 雑記」の各々の項目のところに入れました。
 

|

« ブックリーダが故障したかと思ってしまった | トップページ | WEB小説の探し方、検索条件を変えた »

Python」カテゴリの記事

アプリケーション」カテゴリの記事

携帯電話」カテゴリの記事

コメント

コメントを書く



(ウェブ上には掲載しません)




トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/513620/65177836

この記事へのトラックバック一覧です: Python:リストのスライドスクロールを有効にする対策をした:

« ブックリーダが故障したかと思ってしまった | トップページ | WEB小説の探し方、検索条件を変えた »