Develop and Download Open Source Software

OpenSource Downloads

7-Zip  (3,583)  
CrystalDiskInfo  (1,811)  
Tera Term  (1,787)  
HandBrake Japanese Language Version  (1,743)  
CrystalDiskMark  (980)  
FFFTP  (765)  
ffdshow  (719)  
mixfont-mplus-ipa  (615)  
MergeDoc  (571)  
10  TortoiseSVN  (555)  
11  Amateras  (437)  
12  BathyScaphe  (396)  
13  FreeMind  (372)  
14  Cabos  (327)  
15  ギコナビ  (316)  
More >>

EasyGuiを用いたPythonスクリプトの簡易GUI化

2009年01月08日 10:26 Dmitri Popov 1 2 3

 次に利用するintegerbox関数では、その名が示すとおりに、数値のみを受け付ける入力ボックスが表示される。この入力値については上限および下限値も指定できるので、ここではPygmynoteにおける使用例として、下記のようなカレンダ表示のスクリプト部にて対象月を指定する1~12の整数値をユーザに入力させるようにしてみた。

inputmonth=integerbox(msg='"Month (1-12): "', title='Pygmynotes', default='', argLowerBound=1, argUpperBound=12)

 EasyGuiには、ディレクトリ選択ダイアログボックスを利用するためのdiropenbox関数も用意されている。Pygmynoteでの使用例としては、ユーザが記録した全レコードをpygmynote.txtというテキストファイルに書き出すスクリプト部にて、この関数が役立つはずだ。オリジナルのコードにおける同ファイルの保存先はスクリプトの格納ディレクトリとされているが、下記のようにdiropenbox関数を組み込むだけで、任意のディレクトリをユーザにより選択可能にできてしまう。

elif command=="Save all records as pygmynote.txt":
  cursor.execute ("SELECT * FROM notes ORDER BY id ASC")
  rows = cursor.fetchall ()
  filedir = diropenbox(msg="Select directory", title="Pygmynote", default=None)
  filename = filedir + os.sep + "pygmynote.txt"
  if os.path.exists(filename):
      os.remove(filename)
  for row in rows:
     file = open(filename, 'a')
     file.write("%s\t%s\t[%s]\n" % (row[0], row[1], row[2]))
     file.close()
  msgbox ("Records have been saved in the pygmynote.txt file.", "Pygmynote", ok_button="Close")

 このようにEasyGuiに用意されている機能はあくまで簡易的なものであり、TKinterやwxPythonなどのより本格的なGUIプログラミングを置き換える存在ではないが、Pythonの初心者ユーザや最小限の手間でスクリプトをユーザフレンドリ化したいというプログラマにとっては充分に役立つはずだ。またこれから実際にEasyGuiを試してみるという場合は、利用可能なすべての関数を解説した「EasyGui Tutorial」ページが参考になるだろう。

Dmitri Popovは、フリーランスのライターとして、ロシア、イギリス、アメリカ、ドイツ、デンマークのコンピュータ雑誌に寄稿している。

Linux.com 原文(2008年9月8日)

最終更新:2009年03月10日 17:07
SourceForge.JP is a Japanese version of SourceForge.net. For developments that are not related to Japan, we recommend you to use SourceForge.net.