中でも「wxPython」はプリインストールされている「tkinter」よりも使い勝手・自由度が高く、人気があるようです。
当ブログではそんな「wxPython」を用いてpythonでGUIツールを作成する方法を少しずつご紹介していきます。
- - - - - - - - - - - - - - - - - - - - - - - - -
wxPythonでは、フレームの最下部に「ステータスバー」という領域を作成することができます。
このステータスバーには文字列を表示することができ、様々な使い方が可能です。
私は下記のような使い方をしています。
1.ボタンにマウスポインタを合わせたとき、そのボタンの説明文を表示させる。
例:「ボタンをクリックすると処理を開始します」
2.複雑な処理を行うとき、進捗状態を表示する。
例:「ファイルをコピーしています…」
上記スクリプト内で、過去に解説した内容については省略致します。
ご確認いただきたい場合は、~基礎編~をご覧ください。
続いて詳細を見ていきます。
~~詳細~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
上記スクリプトでは、ステータスバー設置時に引数を設定しておりませんが、数値を引数に設定するとステータスバーの領域を分割することができます。
分割したステータスバーにテキストを追加する際は、第2引数に追加するインデックスを指定します。(0始まり)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ステータスバーはちょっとした情報を表示するのに非常に便利です。
ご存じなかった方は、ぜひ導入の検討をしてみてはいかがでしょうか。
==================================================================
環 境:Python 2.7.9 / Windows7
==================================================================
この記事が参考になりましたら、シェア・フォロー・おすすめしていただけると励みになります! \(^o^)/
==================================================================
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()
<結果>上記スクリプト内で、過去に解説した内容については省略致します。
ご確認いただきたい場合は、~基礎編~をご覧ください。
続いて詳細を見ていきます。
~~詳細~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# ステータスバーの設置
frame.CreateStatusBar()
フレーム作成後、ステータスバーを設置します。# ステータスバーにテキストを追加
frame.SetStatusText(u'ここがステータスバー')
作成したステータスバーにテキストを追加します。上記スクリプトでは、ステータスバー設置時に引数を設定しておりませんが、数値を引数に設定するとステータスバーの領域を分割することができます。
分割したステータスバーにテキストを追加する際は、第2引数に追加するインデックスを指定します。(0始まり)
# ステータスバーの設置
frame.CreateStatusBar(3)
# ステータスバーにテキストを追加
frame.SetStatusText(u'ここ', 1)
<結果>~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ステータスバーはちょっとした情報を表示するのに非常に便利です。
ご存じなかった方は、ぜひ導入の検討をしてみてはいかがでしょうか。
==================================================================
環 境:Python 2.7.9 / Windows7
==================================================================
この記事が参考になりましたら、シェア・フォロー・おすすめしていただけると励みになります! \(^o^)/
==================================================================
Hide() でステータスバーを非表示にしますが、なんか変になります。
返信削除どうやら、ウィンドウのサイズを変更するなど、ワンクッションはさむ必要があるようです。
どうすれば、すぐに、反映されるようになりますか?
コメントありがとうございます。返信が遅くなり申し訳ありません。
削除ステータスバーを非表示にすると「変になる」とのことですが、具体的にはどんな挙動になりますか?
私のほうでテストしたところ、Hide()を実行すればすぐに非表示になり、別のコマンドを実行しなくても反映してしまいました。(・・;)
ちなみに↓のように書きました。
# -*- coding: UTF-8 -*-
import wx
class App(wx.Frame):
____def __init__(self, parent, id, title):
________wx.Frame.__init__(self, parent, id, title, size=(400, 300), style=wx.DEFAULT_FRAME_STYLE)
________# ステータスバー
________self.statusbar = self.CreateStatusBar()
________self.statusbar.SetStatusText('ステータスバー文字列')
________# パネル
________self.p = wx.Panel(self, wx.ID_ANY)
________# ボタン
________self.btn = wx.Button(self.p,wx.ID_ANY,'button')
________self.btn.Bind(wx.EVT_BUTTON,self.click)
________layout = wx.BoxSizer(wx.VERTICAL)
________layout.Add(self.btn, flag=wx.EXPAND | wx.ALL, border=10, proportion=1)
________self.p.SetSizer(layout)
________self.Show()
____def click(self, event):
________""" ボタンクリックイベント """
________print("クリックしました")
________if self.statusbar.IsShown():
____________self.statusbar.Hide()
________else:
____________self.statusbar.Show()
app = wx.App()
App(None, wx.ID_ANY, 'ステータスバーテスト')
app.MainLoop()
返答ありがとうございます。
削除以下のURLにあるような画像になるのは私だけなのですか?
https://fujiwaramaki313.wixsite.com/errr
(このサイトは解決次第削除します。)