リンク

2016年11月5日土曜日

pythonでGUIツールを作る ~ ToggleButton トグルボタン ~

ここではwxPythonのToggleButton(トグルボタン)をご紹介します。

トグルボタンは普通のボタンと違い、「押している状態」と「押していない状態」を区別することができます。
ON/OFFスイッチなどがまさにトグルボタンです。
# -*- coding: UTF-8 -*-

import wx

def click(event):
 if button.GetValue():
  button.SetLabel(u'スイッチON')
 else:
  button.SetLabel(u'スイッチOFF')

application = wx.App()

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

# ToggleButton
button = wx.ToggleButton(p, wx.ID_ANY, u'ボタン')
button.Bind(wx.EVT_TOGGLEBUTTON, click)

layout = wx.BoxSizer(wx.VERTICAL)
layout.Add(button)

p.SetSizer(layout)

frame.Show()
application.MainLoop()

<結果>


上記スクリプト内で、過去に解説した内容については省略致します。
ご確認いただきたい場合は、pythonでGUIツールを作る ~基礎編~をご覧ください。

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

2016年11月3日木曜日

pythonでGUIツールを作る ~ SpinCtrl スピンコントロール~

ここではwxPythonのwx.SpinCtrl(スピンコントロール)をご紹介します。

スピンコントロールはユーザーに「数値のみ」を入力してほしい場合によく使用されます。
以前ご紹介した、TextCtrlはなんでも入力できて便利ですが、入力内容を制限できません。
例えば「ページの指定」や「年齢の入力」といった場合は必ず「数値のみ」を入力してもらう必要がありますので、そういったときに有用です。
# -*- coding: UTF-8 -*-

import wx

application = wx.App()

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

# SpinCtrl
spinctrl = wx.SpinCtrl(p, wx.ID_ANY)

layout = wx.BoxSizer(wx.VERTICAL)
layout.Add(spinctrl, flag=wx.ALL, border=20)
p.SetSizer(layout)

frame.Show()
application.MainLoop()

<結果>

上記スクリプト内で、過去に解説した内容については省略致します。
ご確認いただきたい場合は、pythonでGUIツールを作る ~基礎編~をご覧ください。

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

pythonでGUIツールを作る ~ slider スライダー ~

ここではwx.Slider(スライダー)をご紹介します。

スライダーは直観的な操作で値の上下を促すことができます。
例えば、音量の上げ下げや明るさの調整なんかでよく使われていますね。
# -*- coding: UTF-8 -*-

import wx

application = wx.App()

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

slider = wx.Slider(p, wx.ID_ANY)

layout = wx.BoxSizer(wx.VERTICAL)
layout.Add(slider, flag=wx.EXPAND | wx.ALL, border=10)
p.SetSizer(layout)

frame.Show()
application.MainLoop()

<結果>

上記スクリプト内で、過去に解説した内容については省略致します。
ご確認いただきたい場合は、pythonでGUIツールを作る ~基礎編~をご覧ください。

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

2016年10月31日月曜日

pythonでGUIツールを作る ~RadioBox~

ここではwx.RadioBoxをご紹介します。

以前、wx.RadioButtonについてご紹介させていただきました。
今回ご紹介するwx.RadioBoxは基本的には同じですが、記述方法など少々異なります。

# -*- coding: UTF-8 -*-

import wx

application = wx.App()

frame = wx.Frame(None, wx.ID_ANY, u"タイトル", size=(300,200))
panel = wx.Panel(frame, wx.ID_ANY)

item = (u"項目1", u"項目2", u"項目3")
radio_box = wx.RadioBox(panel, wx.ID_ANY, u"グループ名", choices=item)

layout = wx.BoxSizer(wx.VERTICAL)
layout.Add(radio_box, flag=wx.ALL, border=10)

panel.SetSizer(layout)

frame.Show()
application.MainLoop()

<結果>

上記スクリプト内で、過去に解説した内容については省略致します。
ご確認いただきたい場合は、pythonでGUIツールを作る ~基礎編~をご覧ください。

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

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()

<結果>

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

2016年6月30日木曜日

pythonでGUIツールを作る ~選択ダイアログ(マルチ)~

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

今回はそんな中から複数の項目を選択する場合に使用する「マルチチョイスダイアログ」をご紹介します。
# -*- coding: utf-8 -*-

import wx

# ボタンのクリックイベント
def click(event):
    # マルチチョイスダイアログ
    selections = [u'りんご', u'みかん', u'いちご', u'バナナ', u'スイカ', u'メロン']
    dlg = wx.MultiChoiceDialog(None, u'果物を入力してください', u'タイトル部分', selections)
    dlg.ShowModal()
    dlg.Destroy()

    # 選択項目を全て取得
    input_text = dlg.GetSelections()

    text = ""
    for r in input_text:
        text += selections[r] + ", "

    frame.SetStatusText(text)


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()

<結果>


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