パスワード風文字列生成器のGUI

IPythonで書きなぐったプロトタイプ

#!/usr/bin/env python
# -*- coding: utf-8 -*-

from Tkinter import *
f = Frame()
f.pack()
e = Entry(f)
e.pack()
b = Button(f)
b.pack()
b.config(text=u"生成")
f.master.title(u"ランダム文字列生成")

# generate passwd
import string
import random

# slider
s = Scale(f)
s.pack()
s.config(orient=HORIZONTAL)
s.config(label=u'長さ')
s.config(from_=8)
s.config(to=20)

def disp_rand():
    e.delete(0, END)
    e.insert(0, "".join(random.sample(string.letters + string.digits, s.get())))
    e.select_range(0, END)
b.config(command=disp_rand)
e.config(width=30)

f.mainloop()

クラスを使うように修正

Pythonのクラスとかよくわかりません!><

テキストボックスもボタンもスライダーもみんなフィールドにしちゃったけど、フィールドは最小限にして、IntVarを使ったほうがいいんかな。

#!/usr/bin/env python
# -*- coding: utf-8 -*-

from Tkinter import *
import string
import random

class PasswordGenerator(Frame):
    def init(self):
        self.master.title(u"ランダム文字列生成")

        self.e = Entry(self, width=30)
        self.b = Button(self, text=u"生成", command=self.disp_rand)
        # slider
        self.s = Scale(self, label=u'長さ', from_=8, to=20, orient=HORIZONTAL)

        self.e.pack()
        self.b.pack()
        self.s.pack()

    def disp_rand(self):
        self.e.delete(0, END)
        self.e.insert(0, "".join(random.sample(string.letters + string.digits, self.s.get())))
        self.e.select_range(0, END)

    def quit(self):
        self.master.destroy()

    def __init__(self, master=None):
      Frame.__init__(self, master)
      self.pack()
      self.init()

if __name__ == "__main__":
    pg = PasswordGenerator()
    pg.mainloop()