speakwin モジュールファイルにWin クラスを書く
ここまでのまとめ
「speakwin.py」という名前のファイルをエディタで作ります。
保存場所は MyApp.py と MyApp.rsrc と同じフォルダ内にして下さい。
こんなふうに。
モジュールの中身を書いていきます。ファイルspeakwin.pyに以下のように書いていきます。
Wウィジェットを使ったアプリを作っていくので、まず import を書きます。
import W
Win クラスがあって、そのインスタンスを作るとウィンドウが表示される、というものを作っていくんでした。それで...
class Win(W.Window): #メインウィンドウのクラス def __init__(self): #ウィンドウを表示
class Win(W.Window):
ウィンドウを作るために、Wウィジェットの Windowクラスを継承しています。
def __init__(self): につづけて実際のウィンドウ枠の設定なんかを書いていきます。
W.Window.__init__(self, (10, 40, 250, 180), 'SpeakText', fontsettings = ('Osaka',0,12,(0,0,0)))
W.Windowの__init__メソッドを実行することで、設定しています。
(10, 40, 250, 180) はウィンドウのポジション/サイズ(ディスプレイ画面の左端から10、上端から40、幅250、高さ180)
'SpeakText' はウィンドウのタイトルバーに表示されるタイトル
fontsettings はフォントの設定で、ここではフォント名Osaka、フォントスタイルはノーマル(ボールド/イタリックなどでなく)、サイズ12、色は黒(0,0,0)
ここまでできたので、実際に動かしてウィンドウを表示させてみましょう。
つづけて、
self.open()
とします。この命令によりウィンドウを表示します。open メソッドは W.Window から継承しているものです。
ここまで書いた speakwin.py を保存して、MyApp.pyを実行します。実行するには MyApp.py をダブルクリック、あるいは MyApp.py を PythonInterpreter にドロップします。
PythonIDE で MyApp.py を開いて Run ボタンを押しても実行できません。エラーになります。
mi のPythonモードではコマンドキー+ R で Python インタープリタで実行できるので、MyApp.py と speakwin を mi で開いておいて、編集したり、ウィンドウを切り替えて実行すると便利です。
実行すると以下のようにウィンドウが表示されます。ここまでうまくいっているようです。
ウィンドウが出ただけで、何もできません。FileメニューからQuitを選ぶか、コマンドキー+Q で終了します。
speakwin.py のここまでの内容は以下のようになります
import W class Win(W.Window): #メインウィンドウのクラス def __init__(self): #ウィンドウを表示 W.Window.__init__(self, (10, 40, 250, 180), 'SpeakText', fontsettings = ('Osaka',0,12,(0,0,0))) self.open()
なお、Win クラスは以下のものでも同じように動きます。Python1.5.2 の PythonIDE のスクリプトメニューにある W ウィジェットデモは self.w という変数を定義して以下のように書いてありますね。
class Win: #メインウィンドウのクラス def __init__(self): #ウィンドウを表示 self.w = W.Window((10, 40, 250, 180), 'SpeakText', fontsettings = ('Osaka',0,12,(0,0,0))) self.w.open()