2016年2月25日木曜日

RaspberryPi2で使うツールをPython(pyside)で作ってみた(´;ω;`)

こんばんわ(; ・`д・´)

(`・д´・ ;)少しショックなことがあってこんな表情をしています。

実は、前回のブログで書いたミニゲームのチョコゲットですが、
バレンタインという大イベントにのっかって
モゲラさんで1日で500アクセスくらいいっちゃうかなー( ^ω^)タハー
とか、ひそかに期待していたのにバレンタイン効果ほぼゼロ
3週間経過した今も合計で300もいかず失速中です(´;ω;`)

まぁ、あれです。
1日半で作った作品だし、そうそう簡単にヒットはしないですよね。
そう思うことにします。ԅ( ˘ω˘ ԅ)


(2016/02/25 21:20追記)
ふりーむ!もDL数 23本 (9552位) と予想通りの残念な結果でしたが
ひとつだけ朗報がありました!
ふりーむ!で初めてレビューがつきました!!!ヽ( ´¬`)ノ ワ~イ !!
チョコゲット ChocolateGet のレビュー:無料ゲーム by ふりーむ!

本当にうれしいです!
このレビューを読むだけで、やる気が出てきます。
本当にありがとうございます(´;ω;`)<今度は感動の涙


作ったツールの話


で、タイトルのとおり、 RaspberryPi2 で使うツールを Python で作ったりしたので
久しぶりのブログのネタにでもしようかと思いアップしました。

はっきりいって、コマンド打てばいいじゃん?という人には不要なものだと思います。
GUI にすると何か落ち着くという方には需要があるかもしれません。

HSP とか Unity とかも GUI を作りやすいですが PySide もなかなか便利でした。

ツールの紹介画像の下にある .py のソースを python で実行するだけで動作します。
起動するための .bat や .sh についても後述します。

MountGUI.py について




MountGUI.py


MountGUI は LAN の外部 PC の共有フォルダをマウントして、アクセスするツールです。
Mount トグルボタンを OFF に戻すかウィンドウを閉じるとアンマウントを自動でします。

  • Mount Local Path はマウント先のローカルフォルダです。
  • Mount Remote Path は外部 PC の共有フォルダのパスです。
  • UserName は外部 PC のログインに使うユーザ名です。
  • Password は外部 PC のログインに使うパスワードです。
  • Option は mount コマンドのオプションです。既定では win 7 64bit にアクセスするために使ったオプションが設定されています。
これらの設定をすませて、 Mount すると Mount Local Path のフォルダにマウントされます。
Open ボタンを押すと Mount Local Path のフォルダを起動します。
Open では Raspberry Pi のエクスプローラ的なソフトである pcmanfm をコマンドで起動します。
おそらく他の環境ではうまく動かないので .py の Open ボタンのイベント処理を適宜変更して使ってください。

後で記述する .sh ファイルから呼び出すことで、入力欄の既定値を設定することができ、
起動後に変更しないで、より簡単にマウントすることができるようになります。

DragAndDropAndRunGUI.py について




DragAndDropAndRunGUI.py

DragAndDropAndRunGUI はファイルをドラッグ&ドロップすると、パスをリストに追加します。
リストを右クリックして表示された Remove メニューアイテムで削除できます。

画面の上半分がパスのリストです。画面の下半分はログです。

真ん中にあるチェックボックスで、ドラッグ&ドロップされたパスのフィルタリングができます。
Unique URL チェックボックスですでにリストにある同じ文字列のパスは追加しません。
File Only チェックボックスでフォルダのパスは追加しません。

 Run ボタンを押すと、リストのパスを使った処理を順次します。

Run で行う処理は .py ファイルを編集して書いてください。
処理結果をログ出力したい場合は addLog というメンバ関数を使うと出力できます。

ダブルクリックでやりたいというこだわり(甘え)


基本 Windows の GUI 環境でふにゃふにゃに育ってきた子なので
コマンド文字列ばりばり打って実行するというのが面倒に感じます。

一部の人からはお叱りを受けるかもしれませんが、
とりあえずダブルクリックすれば動くよ!
という状態が大好きなのです( ˘⊖˘)

そこで RaspberryPi でもこの .py をファイルをダブルクリックするだけで動作するように工夫してみました。
Windows なら .bat ファイルを作って、それをダブクリでバッチOKなことを知っているので、同じ感じをシェル .sh ファイルでやってみました。

.sh 自体はぐぐれば解説がたくさんでてきて、次のような感じでいけました。

MountGUI.py 起動用のシェル


MountGUI.py は引数を4つ与えると初期値が指定できます。
.sh ファイルごとにマウント先の情報を保持しておくと便利です。

#!/bin/bash
python MountGUI.py ./mount-point //192.168.1.20/shared username password

DragAndDropAndRunGUI.py 起動用のシェル


DragAndDropAndRunGUI.py は引数をとらないのでこんな感じです。

#!/bin/bash
python DragAndDropAndRunGUI.py

ちなみに Windows の .bat でやる場合はこんな感じです。

START C:\~\pythonw.exe DragAndDropAndRunGUI.py

シェルファイルのプロパティ設定


ここまでで .sh ファイルの設定はすみました。

しかし、 RaspberryPi2(Raspbian) で .sh ファイルをダブルクリックしても実行されずテキストエディタが開いてしまいます。

その場合は、右クリックのコンテキストメニューで、ファイルのプロパティを選択します。
現れたウィンドウのパーミッションタブの実行の選択肢がなしになっていると思うので、すべてなどに変更します。
そうすると、 .sh ファイルをダブルクリックすると実行するか編集するかが選択できるようになります。


Raspbian のファイルのプロパティウィンドウ
実行(E)の選択肢を[なし]から[すべて]に変更

近況について


twitter でウディタのコモンイベントについて少し書いたとおり、ウディタでちょっと作っています。

去年作った「デスチェリー農場」の派生作品で、今回はバトルで普通に戦えるようにしたいと思っています。
配布されているコモンイベントのおかげで最低限の実装はできていて、
ストーリーも大筋できたのですが細かなところでうまくつながらないところがあり止っています。

止まってはいるのですが、前作のむちゃくちゃな農場がなぜできたのかを妄想したりすることは楽しいです。
そのうちいいアイデアがうかんでストーリーがうまくつながったら早めにリリースしたいです。

Unity で作っているソフトはスローペースながら少しずつ進んでいます。
でもまだまだ実装できるかどうかすらあやしい段階で、試行錯誤の最中なので、
まだブログにのせられるようなことがありません。

RaspberryPi2 もまだまだ使い勝手をよくしたいことがあるのでちょくちょくいじろうと思います。

0 件のコメント:

コメントを投稿