リンク

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ツールを作る ~基礎編~をご覧ください。

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



- - - 詳細 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
spinctrl = wx.SpinCtrl(p, wx.ID_ANY)
スピンコントロールを作成するにはwx.SpinCtrlクラスを使用します。
基本的な引数は(親ウィジット、識別子)です。

また、次のように記述することで作成と同時に初期値・最小値・最大値を指定することもできます。
spinctrl = wx.SpinCtrl(p, wx.ID_ANY, value="10", min=2, max=100)
このとき、初期値を表すvalueにはint(数値)でなく、string(文字列)を指定することに注意してください。
未指定の場合はデフォルト値として初期値=0、最小値=0、最大値=100が指定されます。

また、スタイルを指定することによってボタンの向きを変更することができます。
# ボタンを上下に表示(デフォルト)
style=wx.SP_VERTICAL

# ボタンを左右に表示
wx.SP_HORIZONTAL

<参考画像>


ここからは、よく使用する主な関数をご紹介します。
# 現在値を取得する
spinctrl.GetValue()

# 現在値を指定する
spinctrl.SetValue(30)

# 最小値を取得する
spinctrl.GetMin()

# 最小値を指定する
spinctrl.SetMin(0)

# 最大値を取得する
spinctrl.GetMax()

# 最大値を指定する
spinctrl.SetMax(50)

0 件のコメント:

コメントを投稿