リンク

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

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

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



~~詳細~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# フレームの作成(最小化ボタン・最大化ボタンなし)
frame = wx.Frame(None, -1, u'タイトル', size=(200, 200), style=wx.RESIZE_BORDER | wx.SYSTEM_MENU | wx.CAPTION | wx.CLOSE_BOX | wx.CLIP_CHILDREN)
フレーム作成時、スタイルの設定を行います。
スタイルの設定を省略した場合はデフォルトでwx.DEFAULT_FRAME_STYLEが適用されます。
また、wx.DEFAULT_FRAME_STYLEは複数の個別スタイルが組み合わさって構成されています。
従って、下記3つの記述は全て同じ結果となります。

frame = wx.Frame(None, -1, u'日本語でこんにちわ', size=(200,200))
frame = wx.Frame(None, -1, u'日本語でこんにちわ', size=(200,200), style=wx.DEFAULT_FRAME_STYLE)
frame = wx.Frame(None, -1, u'日本語でこんにちわ', size=(200,200), style=wx.MINIMIZE_BOX | wx.MAXIMIZE_BOX | wx.RESIZE_BORDER | wx.SYSTEM_MENU | wx.CAPTION | wx.CLOSE_BOX | wx.CLIP_CHILDREN)
今回の例では、この③の中から、最小化ボタンを表す「wx.MINIMIZE_BOX」と最大化ボタンを表す「wx.MAXIMIZE_BOX」を削除することで実現しています。

他にも「wx.CLOSE_BOX」を削除すれば閉じるボタンが無効となり、「wx.RESIZE_BORDER」を削除すればサイズ変更ができなくなります。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

最大化されては困る、サイズが変更されては困るなどの場合は、スタイルの設定を見直し、根本的にできないようにしておきましょう。

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

0 件のコメント:

コメントを投稿