リンク

2016年11月26日土曜日

pythonでGUIツールを作る ~ ラジオアイテム&チェックアイテム ~

ここでは、wx.Menuに追加するアイテムのラジオアイテムとチェックアイテムをご紹介します。

wx.Menuについてはこちらをご覧ください。
# -*- coding: utf-8 -*-

import wx

def click(event):
    """ ボタンクリックイベント """
    # ファイルメニューの全アイテムを取得
    count = menu_file.GetMenuItems()

    for i in count:
        # ラジオアイテムである
        if i.GetKind() == wx.ITEM_RADIO:
            # チェックが付いている
            if i.IsChecked():
                print(u'インデックス値%sのラジオアイテムにチェックが付いています' % i.GetId())

        # チェックアイテムである
        elif i.GetKind() == wx.ITEM_CHECK:
            # チェックが付いている
            if i.IsChecked():
                print(u'インデックス値%sのチェックアイテムにチェックが付いています' % i.GetId())


application = wx.App()
frame = wx.Frame(None, wx.ID_ANY, u"テストフレーム", size=(300,200))

frame.CreateStatusBar()

panel = wx.Panel(frame, wx.ID_ANY)

# メニューバー
menu_bar = wx.MenuBar()

# 「ファイル」メニュー
menu_file = wx.Menu()

item_1 = wx.MenuItem(menu_file, 1, u'保存')
item_2 = wx.MenuItem(menu_file, 2, u'終了')
item_3 = wx.MenuItem(menu_file, 3, u'ラジオ1', kind=wx.ITEM_RADIO)
item_4 = wx.MenuItem(menu_file, 4, u'ラジオ2', kind=wx.ITEM_RADIO)
item_5 = wx.MenuItem(menu_file, 5, u'ラジオ3', kind=wx.ITEM_RADIO)
item_6 = wx.MenuItem(menu_file, 6, u'チェック1', kind=wx.ITEM_CHECK)
item_7 = wx.MenuItem(menu_file, 7, u'チェック2', kind=wx.ITEM_CHECK)

menu_file.AppendItem(item_1)
menu_file.AppendItem(item_2)
menu_file.AppendItem(item_3)
menu_file.AppendItem(item_4)
menu_file.AppendItem(item_5)
menu_file.AppendItem(item_6)
menu_file.AppendItem(item_7)

menu_bar.Append(menu_file, u'ファイル')
frame.SetMenuBar(menu_bar)

# ボタン
button = wx.Button(panel, wx.ID_ANY, u'ボタン', pos=(100, 50))
button.Bind(wx.EVT_BUTTON, click)

frame.Show()
application.MainLoop()
<結果>


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

続いて解説を行います。

2016年11月13日日曜日

pythonでGUIツールを作る ~ Menubar&Menu メニューバー&メニュー ~

ここではwxPythonのMenubar(メニューバー)とMenu(メニュー)をご紹介します。
# -*- coding: utf-8 -*-

import wx

def menu_event(event):
    """ メニュー項目選択イベント """
    menu_id = event.GetId()

    if menu_id == 1:
        print u'「保存」を選択しました'
    elif menu_id == 2:
        print u'「終了」を選択しました'
    elif menu_id == 3:
        print u'「コピー」を選択しました'
    elif menu_id == 4:
        print u'「貼り付け」を選択しました'
    elif menu_id == 5:
        print u'「進む」を選択しました'
    else:
        print u'「戻す」を選択しました'


application = wx.App()
frame = wx.Frame(None, wx.ID_ANY, u"テストフレーム", size=(300,200))

panel = wx.Panel(frame, wx.ID_ANY)
panel.SetBackgroundColour("#AFAFAF")

# メニューバー
menu_bar = wx.MenuBar()

# 「ファイル」メニュー = = = = = = = = = = = = = = = = = = = = = = = = = = = =
menu_file = wx.Menu()

# メニューアイテムを作る
item_file_1 = wx.MenuItem(menu_file, 1, u'保存')
item_file_2 = wx.MenuItem(menu_file, 2, u'終了')

# 「ファイル」メニューにメニューアイテムを追加
menu_file.AppendItem(item_file_1)
menu_file.AppendItem(item_file_2)

# 「編集」メニュー = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
menu_edit = wx.Menu()

item_edit_1 = wx.MenuItem(menu_edit, 3, u'コピー')
item_edit_2 = wx.MenuItem(menu_edit, 4, u'貼り付け')

menu_edit.AppendItem(item_edit_1)
menu_edit.AppendItem(item_edit_2)

# 「操作」メニュー = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
menu_sousa = wx.Menu()

item_sousa_1 = wx.MenuItem(menu_sousa, 5, u'進む')
item_sousa_2 = wx.MenuItem(menu_sousa, 6, u'戻す')

menu_sousa.AppendItem(item_sousa_1)
menu_sousa.AppendItem(item_sousa_2)

# メニューバーにメニューを追加
menu_bar.Append(menu_file, u'ファイル')
menu_bar.Append(menu_edit, u'編集')

# 「編集』メニューの中に「操作」メニューを追加
menu_edit.AppendSubMenu(menu_sousa, u'操作')

# フレームにメニューバーをセット
frame.SetMenuBar(menu_bar)

# メニュー選択イベントを設定
frame.Bind(wx.EVT_MENU, menu_event)

frame.Show()

application.MainLoop()
<結果>

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

続いて解説を行います。

2016年11月7日月曜日

pythonでGUIツールを作る ~ Notebook ノートブック ~

ここではwxPythonのNotebook(ノートブック)をご紹介します。

ノートブックと言われてもピンとこないかもしれませんが、俗にいう「タブ」だと思って差し支えありません。
# -*- coding: utf-8 -*-

import wx

application = wx.App()
frame = wx.Frame(None, wx.ID_ANY, u"タイトル", size=(300, 300))

# Notebook
notebook = wx.Notebook(frame, wx.ID_ANY)

panel_1 = wx.Panel(notebook, wx.ID_ANY)
panel_2 = wx.Panel(notebook, wx.ID_ANY)
panel_3 = wx.Panel(notebook, wx.ID_ANY)

# パネル1lにテキストを追加
wx.StaticText(panel_1, wx.ID_ANY, u'タブ1上のテキスト', pos=(50, 50))

# パネル2にボタンを追加
wx.Button(panel_2, wx.ID_ANY, u'タブ2上のボタン', pos=(20, 20))

# パネル3に画像を追加
wx.StaticBitmap(panel_3, wx.ID_ANY, wx.Bitmap('./python.ico'))

notebook.AddPage(panel_1, u"タブ1")
notebook.AddPage(panel_2, u"タブ2")
notebook.AddPage(panel_3, u"タブ3")

frame.Show()

# なんか変なのが表示される対処
notebook.Refresh()

application.MainLoop()
<結果>

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

続いて解説を行います。

2016年11月6日日曜日

pythonでGUIツールを作る ~ BitmapButton ビットマップボタン ~

ここではwxPythonのBitmaputton(ビットマップボタン)をご紹介します。

ビットマップボタンはボタンと画像がひとつになったウィジットです。
「ボタンとして使える画像」と言ったほうがイメージしやすいかもしれません。
# -*- 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)

# BitmapButton
button = wx.BitmapButton(p, wx.ID_ANY, wx.Bitmap('a.png'))

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

p.SetSizer(layout)

frame.Show()
application.MainLoop()

<結果>

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

続いてwx.BitmapButtonの解説を行います。

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

<結果>


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

2016年6月29日水曜日

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

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

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

import wx

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

    # 選択項目の文字列を取得
    input_text = dlg.GetStringSelection()

    # 文字列をステータスバーに表示する
    frame.SetStatusText(u"選択された果物は%sです" % input_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()

<結果>


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

2016年6月27日月曜日

pythonでGUIツールを作る ~数値入力ダイアログ~

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

今回はそんな中から数値を入力できる「数値入力ダイアログ」をご紹介します。
# -*- coding: utf-8 -*-

import wx

# ボタンのクリックイベント
def click(event):
    # 数値入力ダイアログ
    dlg = wx.NumberEntryDialog(None, u'個数を入力してください', u'1~300個', u'タイトル部分', 50, 1, 300)
    dlg.ShowModal()
    dlg.Destroy()

    # 入力値を取得
    input_text = dlg.GetValue()

    # 入力値をステータスバーに表示する
    frame.SetStatusText(u"指定された個数は%d個です" % input_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()

<結果>


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

2016年6月23日木曜日

pythonでGUIツールを作る ~テキスト入力ダイアログ~

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

今回はそんな中から任意の文字列を入力できる「テキスト入力ダイアログ」をご紹介します。
# -*- coding: utf-8 -*-

import wx

# ボタンのクリックイベント
def click(event):
    # テキスト入力ダイアログ
    dlg = wx.TextEntryDialog(None, u'テキストを入力してください', u'タイトル部分')
    dlg.ShowModal()
    dlg.Destroy()

    # 入力値を取得
    input_text = dlg.GetValue()

    # 入力値をステータスバーに表示する
    frame.SetStatusText(input_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()

<結果>

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

2016年6月21日火曜日

pythonでGUIツールを作る ~カラー選択ダイアログ~

今回はpythonからwxPythonを使ってカラー選択ダイアログを表示させる方法をご紹介します

# -*- coding: utf-8 -*-

import wx
app = wx.App()
frame = wx.Frame(None, -1, u'タイトル', size=(300, 300))

# カラー選択ダイアログの表示 = = = = = = = = = = = = = = = = =
dialog = wx.ColourDialog(None)
dialog.ShowModal()

# 選択したカラーを取得
color = dialog.GetColourData().GetColour()

# フレームの背景色に選択したカラーを設定
frame.SetBackgroundColour(color)
# = = = = = = = = = = == = = = = = = = = = = = = = = = = = = =

frame.Show()
app.MainLoop()

<結果>

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

2016年5月20日金曜日

pythonでGUIツールを作る ~フォルダ選択ダイアログ~

今回はpythonからwxPythonを使ってフォルダ選択ダイアログを表示させる方法をご紹介します。

# -*- coding: utf-8 -*-
import wx

app = wx.App()

# フォルダ選択ダイアログを作成
dialog = wx.DirDialog(None, u'フォルダを選択してください')

#フォルダ選択ダイアログを表示
dialog.ShowModal()

<結果>
※環境により表示内容は異なります
続いて詳細を見ていきます。

2016年4月29日金曜日

pythonでGUIツールを作る ~ファイル選択ダイアログ~

今回はpythonからwxPythonを使ってファイル選択ダイアログを表示させる方法をご紹介します。

# -*- coding: utf-8 -*-

import wx

app = wx.App()

# ファイル選択ダイアログを作成
dialog = wx.FileDialog(None, u'ファイルを選択してください')

# ファイル選択ダイアログを表示
dialog.ShowModal()

<結果>
※環境により表示内容は異なります
続いて詳細を見ていきます。

2016年4月26日火曜日

pythonでGUIツールを作る ~メッセージダイアログ~

今回はpythonでメッセージダイアログを表示させる方法をご紹介します。

# -*- coding: utf-8 -*-

import wx

app = wx.App()

# メッセージダイアログを作成
dialog = wx.MessageDialog(None, u'メッセージ', u'タイトル')

# メッセージダイアログを表示
dialog.ShowModal()

<結果>
続いて詳細を見ていきます。

pythonでGUIツールを作る ~メッセージボックス~

pythonでメッセージボックスを表示させる方法はいくつか存在しますが、今回はwxPythonを用いた、非常にシンプルな方法をご紹介します。

# -*- coding: utf-8 -*-

import wx

app = wx.App()

# メッセージボックスを表示
wx.MessageBox(u'メッセージ', u'タイトル')

<結果>

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

2016年4月25日月曜日

pythonでGUIツールを作る ~ラジオボタン~

pythonでGUIフォームを作成するためのツールキットはいくつか存在します。
中でも「wxPython」はプリインストールされている「tkinter」よりも使い勝手・自由度が高く、人気があるようです。

当ブログではそんな「wxPython」を用いてpythonでGUIツールを作成する方法を少しずつご紹介していきます。

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

今回は、選択系ウィジットの1つである ”ラジオボタン“(RadioButton) をご紹介します。
ラジオボタンは、複数の選択項目をグループ化し、そのグループ内からはひとつしか選択できないようにしたい場合に使用します。

# -*- coding: utf-8 -*-

import wx

app = wx.App()

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

# ラジオボタンの設置
radiobutton_1 = wx.RadioButton(panel, -1, 'radiobutton_1', pos=(10,10))
radiobutton_2 = wx.RadioButton(panel, -1, 'radiobutton_2', pos=(10,40))
radiobutton_3 = wx.RadioButton(panel, -1, 'radiobutton_3', pos=(10,70))
radiobutton_4 = wx.RadioButton(panel, -1, 'radiobutton_4', pos=(10,100))

frame.Show()
app.MainLoop()

<結果>

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

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

2016年4月22日金曜日

pythonでGUIツールを作る ~チェックボックス~

pythonでGUIフォームを作成するためのツールキットはいくつか存在します。
中でも「wxPython」はプリインストールされている「tkinter」よりも使い勝手・自由度が高く、人気があるようです。

当ブログではそんな「wxPython」を用いてpythonでGUIツールを作成する方法を少しずつご紹介していきます。

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

今回は、選択系ウィジットの1つである ”チェックボックス“(CheckBox) をご紹介します。
チェックボックスは各項目の先頭に□が付いており、レ点を付けることでひとつ~複数の項目を選択します。

# -*- coding: utf-8 -*-

import wx

app = wx.App()

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

# チェックボックスの設置
checkbox_1 = wx.CheckBox(panel, -1, 'CheckBox_1', pos=(10,10))
checkbox_2 = wx.CheckBox(panel, -1, 'CheckBox_2', pos=(10,40))
checkbox_3 = wx.CheckBox(panel, -1, 'CheckBox_3', pos=(10,70))

frame.Show()
app.MainLoop()

<結果>

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

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

pythonでGUIツールを作る ~リストボックス~

pythonでGUIフォームを作成するためのツールキットはいくつか存在します。
中でも「wxPython」はプリインストールされている「tkinter」よりも使い勝手・自由度が高く、人気があるようです。

当ブログではそんな「wxPython」を用いてpythonでGUIツールを作成する方法を少しずつご紹介していきます。

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

今回は、リスト系ウィジットの1つである”リストボックス“(ListBox)をご紹介します。
リストボックスはリスト表示された選択肢の中から、ひとつもしくは複数の項目を選択する際によく使用されます。

# -*- coding: utf-8 -*-

import wx

app = wx.App()

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

# 選択肢の作成(リスト)
array = ("test1", "test2", "test3", "test4", "test5")

# リストボックスの設置
listbox = wx.ListBox(panel, -1, choices=array)

frame.Show()
app.MainLoop()

<結果>

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

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

pythonでGUIツールを作る ~コンボボックス~

pythonでGUIフォームを作成するためのツールキットはいくつか存在します。
中でも「wxPython」はプリインストールされている「tkinter」よりも使い勝手・自由度が高く、人気があるようです。

当ブログではそんな「wxPython」を用いてpythonでGUIツールを作成する方法を少しずつご紹介していきます。

- - - - - - - - - - - - - - - - - - - - - - - - - - -

今回は、選択系ウィジットの1つである”コンボボックス“をご紹介します。
コンボボックスはドロップダウンして表示される選択肢の中から、ひとつの項目を選択する際によく使用されます。

# -*- coding: utf-8 -*-

import wx

app = wx.App()

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

# 選択肢の作成(リスト)
array = ("test1", "test2", "test3", "test4", "test5")

# コンボボックスの設置
combo = wx.ComboBox(panel, -1, u'選択', choices=array)

frame.Show()
app.MainLoop()


<結果>
プルダウンした状態
上記スクリプト内で、過去に解説した内容については省略致します。
ご確認いただきたい場合は、~基礎編~をご覧ください。

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

2016年4月21日木曜日

pythonでGUIツールを作る ~スタティックテキスト(ラベル)~

pythonでGUIフォームを作成するためのツールキットはいくつか存在します。
中でも「wxPython」はプリインストールされている「tkinter」よりも使い勝手・自由度が高く、人気があるようです。

当ブログではそんな「wxPython」を用いてpythonでGUIツールを作成する方法を少しずつご紹介していきます。

- - - - - - - - - - - - - - - - - - - - - - - - - -

今回は、文字列を表示させるためのシンプルなウィジットである”スタティックテキスト“(別の言語では”ラベル“という名称の場合もある)をご紹介します。

# -*- coding: utf-8 -*-

import wx

app = wx.App()

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

# スタティックテキストの設置
text1 = wx.StaticText(panel, -1, u'テキストです')

frame.Show()
app.MainLoop()
<結果>
上記スクリプト内で、過去に解説した内容については省略致します。 ご確認いただきたい場合は、~基礎編~をご覧ください。

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

pythonでGUIツールを作る ~TextCtrl テキストコントロール~

pythonでGUIフォームを作成するためのツールキットはいくつか存在します。
中でも「wxPython」はプリインストールされている「tkinter」よりも使い勝手・自由度が高く、人気があるようです。

当ブログではそんな「wxPython」を用いてpythonでGUIツールを作成する方法を少しずつご紹介していきます。

- - - - - - - - - - - - - - - - - - - - - - - - - - - -

今回はユーザーからの入力を受け付ける”テキストコントロール“について書いていきます。

# -*- coding: utf-8 -*-

import wx

app = wx.App()

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

# テキストコントロールの設置
textbox1 = wx.TextCtrl(panel, -1, pos=(10,10))
textbox2 = wx.TextCtrl(panel, -1, u'初期値あり', pos=(10,40))
textbox3 = wx.TextCtrl(panel, -1, u'右寄せ', pos=(10,70), style=wx.TE_RIGHT)

frame.Show()
app.MainLoop()

<結果>

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

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

2016年4月20日水曜日

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

pythonでGUIフォームを作成するためのツールキットはいくつか存在します。
中でも「wxPython」はプリインストールされている「tkinter」よりも使い勝手・自由度が高く、人気があるようです。

当ブログではそんな「wxPython」を用いてpythonでGUIツールを作成する方法を少しずつご紹介していきます。

- - - - - - - - - - - - - - - - - - - - - - - - - -

今回は基本的なウィジットのひとつである”ボタン“について書いていきます。

# -*- coding: utf-8 -*-

import wx

# ボタンのクリックイベント関数
def click(event):
    frame.SetStatusText("button was Click!!")

app = wx.App()

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

# ボタン1の設置
button_1 = wx.Button(panel, -1, u'ボタン')

# ボタンのクリックイベント
button_1.Bind(wx.EVT_BUTTON, click)

frame.Show()
app.MainLoop()


<結果>
ボタンをクリックしたところ

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

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

pythonでGUIツールを作る ~パネルの設置~

pythonでGUIフォームを作成するためのツールキットはいくつか存在します。
中でも「wxPython」はプリインストールされている「tkinter」よりも使い勝手・自由度が高く、人気があるようです。

当ブログではそんな「wxPython」を用いてpythonでGUIツールを作成する方法を少しずつご紹介していきます。

- - - - - - - - - - - - - - - - - - - - - - - - - - - -

wxPythonでは、フレームを作成したらパネルを設置し、そのパネルに各種ウィジットを追加していくのが一般的となります。
今回は、フレームにパネルを設置する方法をご紹介します。

# -*- coding: utf-8 -*-

import wx

app = wx.App()

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

# パネルの設置
panel  = wx.Panel(frame, -1)

# パネルの背景色を緑に変更
panel.SetBackgroundColour("green")

frame.Show()
app.MainLoop()
<結果>

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

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

pythonでGUIツールを作る ~ステータスバーの設置~

pythonでGUIフォームを作成するためのツールキットはいくつか存在します。
中でも「wxPython」はプリインストールされている「tkinter」よりも使い勝手・自由度が高く、人気があるようです。

当ブログではそんな「wxPython」を用いてpythonでGUIツールを作成する方法を少しずつご紹介していきます。

- - - - - - - - - - - - - - - - - - - - - - - - -

wxPythonでは、フレームの最下部に「ステータスバー」という領域を作成することができます。

このステータスバーには文字列を表示することができ、様々な使い方が可能です。

私は下記のような使い方をしています。
 1.ボタンにマウスポインタを合わせたとき、そのボタンの説明文を表示させる。
  例:「ボタンをクリックすると処理を開始します」
 2.複雑な処理を行うとき、進捗状態を表示する。
  例:「ファイルをコピーしています…」

# -*- coding: utf-8 -*-

import wx

app = wx.App()

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

# ステータスバーの設置
frame.CreateStatusBar()

# ステータスバーにテキストを追加
frame.SetStatusText(u'ここがステータスバー')

frame.Show()
app.MainLoop()
<結果>

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

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

2016年4月19日火曜日

pythonでGUIツールを作る ~フレームスタイルの変更~

pythonでGUIフォームを作成するためのツールキットはいくつか存在します。
中でも「wxPython」はプリインストールされている「tkinter」よりも使い勝手・自由度が高く、人気があるようです。

当ブログではそんな「wxPython」を用いてpythonでGUIツールを作成する方法を少しずつご紹介していきます。

- - - - - - - - - - - - - - - - - - - - - - - -

フレームのスタイルを変更することで、最小化ボタン・最大化ボタンを無効にする、サイズ変更ができないようにする、枠の線を消す、といったことが可能になります。

# -*- coding: utf-8 -*-

import wx

app = wx.App()

# フレームの作成(最小化ボタン・最大化ボタンなし)
frame = wx.Frame(None, -1, u'タイトル', size=(200, 200), style=wx.RESIZE_BORDER | wx.SYSTEM_MENU | wx.CAPTION | wx.CLOSE_BOX | wx.CLIP_CHILDREN)

frame.Show()
app.MainLoop()
<結果>

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

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

pythonでGUIツールを作る ~フレームの表示位置~

pythonでGUIフォームを作成するためのツールキットはいくつか存在します。
中でも「wxPython」はプリインストールされている「tkinter」よりも使い勝手・自由度が高く、人気があるようです。

当ブログではそんな「wxPython」を用いてpythonでGUIツールを作成する方法を少しずつご紹介していきます。

- - - - - - - - - - - - - - - - - - - - - - - - - - - -

作成したフレームを画面上のどの位置に表示させるかを指定するには次のように記述します。
# -*- coding: utf-8 -*-

import wx

app = wx.App()

# フレームの作成

frame = wx.Frame(None, -1, u'タイトル', size=(200, 200), pos=(100, 200))

frame.Show()
app.MainLoop()

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

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

2016年4月18日月曜日

pythonでGUIツールを作る ~アイコンの指定~

pythonでGUIフォームを作成するためのツールキットはいくつか存在します。
中でも「wxPython」はプリインストールされている「tkinter」よりも使い勝手・自由度が高く、人気があるようです。

当ブログではそんな「wxPython」を用いてpythonでGUIツールを作成する方法を少しずつご紹介していきます。

 - - - - - - - - - - - - - - - - - - - - - - - - - -

作成したフレームのアイコンを設定するには、wx.Icon関数で画像ファイルを指定し、SetIcon関数でフレームにアイコンを指定します。
# -*- coding: utf-8 -*-

import wx

app = wx.App()

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

# 画像ファイルの指定
icon = wx.Icon(r"C:\Users\Picture\my_icon.ico", wx.BITMAP_TYPE_ICO)

# フレームにアイコンをセット
frame.SetIcon(icon)

frame.Show()
app.MainLoop()

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

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

2016年4月16日土曜日

pythonでGUIツールを作る ~基本編~

pythonでGUIフォームを作成するためのツールキットはいくつか存在します。
中でも「wxPython」はプリインストールされている「tkinter」よりも使い勝手・自由度が高く、人気があるようです。

当ブログではそんな「wxPython」を用いてpythonでGUIツールを作成する方法を少しずつご紹介していきます。

- - - - - - - - - - - - - - - - - - - - - - - - -

今回は基礎編として、フレームを表示させる方法をご紹介します。
なお、モジュールはすでに入手されていることを前提とさせていただきます。

# -*- coding: utf-8 -*-

# モジュールのインポート
import wx

# アプリケーションの作成
app = wx.App()

# フレームの作成
frame = wx.Frame(None, -1, u'タイトル', size=(200, 200))

# フレームの表示
frame.Show()

# アプリケーションのループ
app.MainLoop()
<実行結果>

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

2016年3月24日木曜日

PythonでExcelファイルを読み込む

Pythonで既存のExcelファイルを読み込む方法をご紹介します。

Excelファイルを読み込むには「xlrd」モジュールが便利です。
# モジュールのインポート
import xlrd

# Excelファイルを開く
book  =xlrd.open_workbook('test.xlsx')

# シート数を取得する
book.nsheets

# 全てのシート名を取得する
book.sheet_names()

# インデックス番号で指定したシートに接続する
get_sheet = book.sheet_by_index(1)

# インデックス番号で指定したシート名を取得する
book.sheet_by_index(1).name

# 接続したシートで使用されている列数・行数を取得する
get_sheet.ncols # 列数
get_sheet.nrows # 行数

# 指定セルの値を取得する
get_sheet.cell(0, 0).value
##  [参考] セルの座標は(縦、横)で指定し、共に0から始まる。
##        セルA1は(0, 0)となり、セルD5は(4, 3)となる。

# 指定列・指定行の値を全て取得する
get_sheet.col_values(0) # 列
get_sheet.row_values(0) # 行

2016年3月19日土曜日

pythonでzipファイルを作成する

Pythonでは簡単にzipファイルを作成することができます。
今回はその方法について、できるだけわかりやすくご紹介したいと思います。

zipファイルを作成するには標準モジュールの「zipfile」モジュールを使用します。

それではサンプルを記述します。
# -*- coding:utf-8

import zipfile

# オブジェクトの作成
newfile = zipfile.Zipfile(r"C:\Python\new.zip", "w", zipfile.ZIP_DEFLATED)

# zipファイルに各ファイルを追加する
newfile.write(r"C:\test\aaa.txt")
newfile.write(r"C:\test\bbb.xml")
newfile.write(r"C:\test\ccc.pdf")

# オブジェクトを閉じる
newfile.close()
<解説>
# オブジェクトの作成
newfile = zipfile.ZipFile(r"C:\Python\new.zip", "w", zipfile.ZIP_DEFLATED)
この記述で、新しいzipファイルを作成します。
この時点では、中身は空の状態です。
また、指定したパスの中間のディレクトリが存在しない場合はエラーとなります。

ZipFileクラスの引数は次のようになっています。
zipfile.ZipFile(第一引数第二引数, 第三引数)

 第一引数 … 作成するzipファイルのパスを指定します。
 第二引数 … 読み書きモードを指定します。
         "r" … 既存ファイルの読み込み
         "w" … 新しいファイルへの書き込み
         "a" … 既存ファイルへの追記
 第三引数 … 圧縮有無の指定。
         "ZIP_STORED" … 圧縮なし
         "ZIP_DEFLATED" … 圧縮あり

※参考
第三引数の圧縮についてですが、実際にテストしたところ、次の違いがありました。

"ZIP_STORED"の時 … 1848バイト
"ZIP_DEFLATED"の時 … 736バイト

# zipファイルに各ファイルを追加する
newfile.write(r"C:\test\aaa.txt")
この記述で、空だったzipファイルにファイルを追加しています。
for文等を使って、繰り返し追加することも可能です。

# オブジェクトを閉じる
newfile.close()
追加が終わったら、最後にzipファイルを閉じます。

==================================================================
環 境:Python 2.7.9  / Windows7
==================================================================
この記事が参考になりましたら、シェア・フォロー・おすすめしていただけると励みになります
==================================================================

[python] osモジュールまとめ


pythonを使う上で、よく使用するモジュールのひとつである「osモジュール」の中から、特に使用頻度の高いであろうものを厳選しました!
# モジュールのインポート
import os

# カレントディレクトリを取得する
os.getcwd()

# カレントディレクトリを移動する
os.chdir(r'C:\python')

# 指定したパス上の項目を表示する
os.listdir(r'C:\python')
##  ワイルドカードは使用できない。ワイルドカードを使用したい場合はglobモジュールを使用すると良い。

# フォルダを作る その1
os.mkdir(r"C:\python\hoge\NewFolder")
##  末端のフォルダを作成するまでの、中間のフォルダが存在しない場合はエラーとなり、フォルダは作成されない。 

# フォルダを作る その2
os.makedirs(r"C:\python\hoge\NewFolder")
##  末端のフォルダを作成するまでの、中間のフォルダが存在しない場合は新たに作成し、指定通りのパスでフォルダを作成する。

# ファイルを削除する
os.remove(r"C:\python\hoge\NewFolder\test.txt")
##  フォルダが指定された場合はエラーとなる。

# フォルダを削除する
os.rmdir(r"C:\python\hoge\NewFolder")
##  空のフォルダのみ削除する。空ではないフォルダを削除する場合(再帰的に削除する場合)は、shutilモジュールを使用する。

# リネームする(フォルダ・ファイルの区別なし)
os.rename(r"C:\python\hoge\NewFolder\test.txt", "New_Name.txt")
##  引数は(現在の名前, 新しい名前)の順で記述する。

# リネームしつつ、指定の場所に移動する
os.renames(r"C:\python\hoge\NewFolder\test.txt", r"C:\Users\user\Desktop\NewName.txt")
##  引数は(現在の名前, 新しい名前)の順で記述する。

# コマンドプロンプトのコマンドを使用する
os.system("dir")
##  dirはコマンドプロンプトで「カレントディレクトの内容を表示する」コマンド。

# PowerShellのコマンドレットを使用する
os.system("PowerShell Get-ChildItem")
##  Get-ChildItemはPowerShellで「カレントディレクトの内容を表示する」コマンドレット。

# Windowsユーザー名を取得する
os.environ.get("username")

# パスからファイル名のみを取得する
os.path.basename(r"C:\python\hoge\NewFolder\test.txt")
'test.txt'

# 存在を確認する その1
os.path.exists(r"C:\python\hoge")
##  ファイル・フォルダどちらでも使用可能。

# 存在を確認する その2
os.path.isdir(r"C:\python\hoge")
##  フォルダ限定。

# 存在を確認する その3
os.path.isfile(r"C:\python\hoge\test.txt")
##  ファイル限定。

# パスから拡張子のみを取得する
a = os.path.splitext(r"C:\python\hoge\test.txt")
a[1]
'.txt'
##  os.path.splitextの実行結果はタプルとなり、拡張子以前の部分と、拡張子の部分に分割される。a[0]とすれば、「C:\python\hoge\test」が返る。
==================================================================
環 境:Python 2.7.9 / Windows7
==================================================================
この記事が参考になりましたら、シェア・フォロー・おすすめしていただけると励みになります
==================================================================

[python] マップの操作

# マップを作る
dic = {1:'a', 2:'b', 3:'c', 4:'d', 5:'e'}

# 空のマップを作る
dic = {}

# キーを指定して取り出す
# キーが「3」である要素の値を出力する
dic[3]
'c'

# 要素を追加する
# キーが「8」で値が「h」であるものを追加する
dic[8] = 'h'
dic
{1:'a', 2:'b', 3:'c', 4:'d', 5:'e', 8:'h'}

# キーが存在するかどうか確認する
# キーがマップ内に存在する場合はTrue
5 in dic
True

# キーがマップ内に存在しない場合はFalse
6 in dic
False

# 要素を削除する
# キーを指定して、要素を削除する。削除された値が出力される
dic.pop(2)
'b'
==================================================================
環 境:Python 2.7.9 / Windows7
==================================================================
この記事が参考になりましたら、シェア・フォロー・おすすめしていただけると励みになります
==================================================================

2016年3月8日火曜日

[python] リストの操作まとめ


# リストを作る
array = ['a', 'b', 'c', 'd', 'e']

# 空のリストを作る
array = []

# n番目の要素を取得する
array[3]
'd'

# リスト内で最後の要素を取得する
array[-1]
'e'

# 範囲を指定して要素を取得する
array[0:3]
['a', 'b', 'c']

# n番目の要素を置き換える
array[3] = 'm'
array
['a', 'b', 'c', 'm', 'e']

# 末尾に要素を追加する
array.append("z")
array
['a', 'b', 'c', 'd', 'e', 'z']

# 指定したインデックスの前に要素を追加する
array.insert(2, 'z')
array
['a', 'b', 'z', 'c', 'd', 'e']

# リストにリストを結合する
array += ['x', 'y']
array
['a', 'b', 'c', 'd', 'e', 'x', 'y']

# 指定の要素が含まれるか確認する
'b' in array
True

# n番目の要素を削除する
array.pop(1)
array
['a', 'c', 'd', 'e']

# リスト内で最後の要素を削除する
array.pop()
'e'

# 要素の数をカウント
len(array)
5

# リスト内を昇順で並べ替え
array.sort()

# リスト内を降順で並べ替え
array.reverse()

# 指定の値を持つ要素の数をカウント
array = ['a', 'b', 'c', 'a', 'd', 'e', 'a']
array.count('a')
3

# 重複している要素を削除する
array = ['a', 'b', 'c', 'a', 'd', 'e', 'a']
new = list(set(array))
new
['a', 'b', 'c', 'd', 'e']
==================================================================
環 境:Python 2.7.9 / Windows7
==================================================================
この記事が参考になりましたら、シェア・フォロー・おすすめしていただけると励みになります
==================================================================

2016年3月7日月曜日

[python] 文字列、数値の操作まとめ

# 小文字→大文字に変換
a = "aiueo"
a.upper()
AIUEO

# 大文字→小文字に変換
a = "AIUEO"
a.lower()
aiueo

# 頭文字のみ大文字に変換
a = "aiueo"
a.capitalize()
Aiueo

# 小文字→大文字に、大文字→小文字に変換
a = "aIuEo"
a.swapcase()
AiUeO

# 文字列を指定した文字で区切る
a = "abc-def"
a.split("-")
['abc', 'def']

# 指定した文字が含まれるか判定する その1
# 指定した文字が含まれる場合は、最初に該当するインデックス番号が返る。
# 含まれない場合はエラーが返る。
a = "aiueo"
a.index("u")
2

# 指定した文字が含まれるか判定する その2
# 指定した文字が含まれる場合は、最初に該当するインデックス番号が返る。
# 含まれない場合は「-1」が返る。
a = "aiueo"
a.find("u")
2

# 指定した文字が含まれるか判定する その3
# 指定した文字が含まれる場合は、最後に該当するインデックス番号が返る。
# 含まれない場合はエラーが返る。
a = "aiueo-aiueo"
a.rindex("u")
8

# 指定した文字が含まれるか判定する その4
# 指定した文字が含まれる場合は、最後に該当するインデックス番号が返る。
# 含まれない場合は「-1」が返る。
a = "aiueo-aiueo"
a.rfind("u")
8

# 文字列内の指定部分を置換する
a = "aiueo-aiueo"
a.replace("ueo-ai", "s-s")
'ais-sueo'

# 文字列の指定部分を抜き出す
a = "aiueo-aiueo"
a[2:8]
'ueo-ai'

# 文字列の先頭から指定部分までを抜き出す
a = "aiueo-aiueo"
a[:8]
'aiueo-ai'

# 文字列の末尾から指定部分までを抜き出す
a = "aiueo-aiueo"
a[5:]
'-aiueo'

# str文字列をunicode文字列に変換
a = "aiueo-aiueo"
type(a)
<type 'str'>
b = unicode(a, 'shift-jis', 'ignore')
type(b)
<type 'unicode'>
==================================================================
環 境:Python 2.7.9 / Windows7
==================================================================
この記事が参考になりましたら、シェア・フォロー・おすすめしていただけると励みになります
==================================================================