リンク

2016年8月2日火曜日

pythonでGUIツールを作る ~アバウトダイアログ~

wxPythonでは数々の即席ダイアログが初めから用意されています。

みなさんもひとつくらいはフリーソフトをダウンロードして使っていることと思います。
そんなソフトの中に「バージョン情報」や「○○について」といった文言で、そのソフトの情報を表示するダイアログを見たことがあるのではないでしょうか。

今回ご紹介するのはそんな「アバウトダイアログ」です。
# -*- coding: utf-8 -*-

import wx
import wx.adv

def click(event):
    """ Click Event """

    info = wx.adv.AboutDialogInfo()

    info.SetName(u'オリジナルアプリ')
    info.SetVersion('1.0.0.1')
    info.SetCopyright('Copyright 2016 TAKE. All Right Reserved. ')
    info.SetDevelopers(['TAKE'])
    info.SetDescription(u'ここには説明を書きます')
    info.SetIcon(wx.Icon('a.png'))

    wx.adv.AboutBox(info)


app = wx.App()

frame = wx.Frame(None, -1, u'タイトル', size=(200, 200))
frame.CreateStatusBar()
p = wx.Panel(frame, -1)

button = wx.Button(p, -1, u'表 示')
button.Bind(wx.EVT_BUTTON, click)

frame.Show()
app.MainLoop()

<結果>

続いて詳細を見ていきます。

pythonでGUIツールを作る ~進捗ダイアログ~

wxPythonでは数々の即席ダイアログが初めから用意されています。

今回ご紹介するのは、時間のかかる処理の進捗状況を表示する「プログレスダイアログ」です。
# -*- coding: utf-8 -*-

import wx
import time

# ボタンのクリックイベント
def click(event):
    # プログレスダイアログ
    dlg = wx.ProgressDialog(u'コピー中(大嘘)', u'0/50ファイル', 50)
    dlg.ShowModal()

    # ループ処理
    for a in range(0, 50):
        # 0.5秒待つ
        time.sleep(0.5)

        # 値の更新
        dlg.Update(a, u'%d/50ファイル' % a)

    dlg.Destroy()


app = wx.App()

frame = wx.Frame(None, wx.ID_ANY, u'タイトル', size=(200, 200))
frame.CreateStatusBar()
p = wx.Panel(frame, wx.ID_ANY)

button = wx.Button(p, wx.ID_ANY, u'開 始')
button.Bind(wx.EVT_BUTTON, click)

frame.Show()
app.MainLoop()

<結果>

続いて詳細を見ていきます。