よちよちpython

独習 python/Qpython/Pydroid3/termux/Linux

Qpythonとブラウザでクリップボードを表示する

ここではQpythonを使って、androidhelperとbottleのモジュールをインポートし、ブラウザを開くと保存されているクリップボードが表示されるpythonプログラムの作り方を書いておこ。

・作るファイル(2つ)
pythonコードのmain.py
htmlコードのクリップボード.tpl

・手順
Qpythonを立ち上げる

「エディタ」→右上「+」ボタン→「WebApp」
の順で押していく

「新規プロジェクト」のダイアログが出るので、適当にプロジェクト名を付ける。日本語でもOK。今回は「クリップボード」としておきます。
プロジェクトは自動的に「qpython」フォルダ内の「projects3」フォルダにプロジェクト名「クリップボード」フォルダとして保存されます。
いま画面に出ている自動的に書かれた14行のコードmain.pyファイルは「クリップボード」内に保存されます。

main.pyの2~7行目の下記を削除

#qpy:3
#qpy:webapp:Sample 
#qpy://localhost:8080/
"""
This is a sample for qpython webapp
"""

特に3行目の

#qpy:webapp:Sample

が残っているとQpythonのWebAppが作成されてしまいます。今回はブラウザに表示させたいので必ず消します。

main.pyを下記のように書き換える

#-*-coding:utf8;-*-
from bottle import route,run,template
import os
os.chdir(os.path.dirname(os.path.abspath(__file__)))
@route("/クリップボード")
def clipboard_output():    
    import androidhelper
    Droid = androidhelper.Android()     
    
    #クリップボードの中身を取得
    clipboard = Droid.getClipboard().result
        
    return (template("クリップボード.tpl",clipboard=clipboard))

run(host="localhost",port=8080,debug=True,reloader=True)


次にmain関数がreturnしているtemplateファイル「クリップボード.tpl」を作ります。
Qpythonの初期画面の「エディタ」→右上「+」ボタン→「ファイル」の順に進み、以下のhtmlを作ります。

<!DOCTYPE html>
<html lang=ja>
        <head>
            <meta charset="UTF-8">
            <meta name="viewport" content="width=device-width">          
            <title>クリップボード</title>
            </head>
            <body>
                <h1>クリップボードの中身</h1>
                <p>{{clipboard}}</p> 
           </body>


「💾」ボタン→「ファイル名を指定して保存」画面が出る

「qpython」→「projects3」→「クリップボード」フォルダを開くと今作ったmain.pyが入っています。そこに「クリップボード.tpl」と名前を付けて「保存」ボタン。
これで完成。

・実行

f:id:chayarokurokuro:20190510023302p:plain
この画面の「サインイン」上の丸アイコンを押すと作ったプロジェクト「クリップボード」が緑色のアイコンにあるので押す。

Qpythonは一旦そのままにして今度はブラウザを立ち上げ、URLに「localhost:8080/クリップボード」と入力しenter。
f:id:chayarokurokuro:20190510024538p:plain

ブラウザにクリップボードが貼り付けられれば成功。
上手くクリップボードが出なかったら、一度Qpythonを終了させて、再度プロジェクトの実行とブラウザからlocalhost:8080/クリップボードにアクセスさせてみれば出るかも。