scrapbook2.py

来自「Python.Tkinter编程实例代码多多学习」· Python 代码 · 共 69 行

PY
69
字号
from Tkinter import *
import Image, ImageTk, os, string

class Scrapbook:
    def __init__(self, master=None):
        self.master = master
        self.frame = Frame(master, width=400, height=420, bg='gray50',
                           relief=RAISED, bd=4)
              
        self.lbl = Label(self.frame)
        self.lbl.place(relx=0.5, rely=0.48, anchor=CENTER)

        self.images = []
        images = os.listdir("images")

        xpos = 0.05
        for i in range(10):
            Button(self.frame, text='%d'%(i+1), bg='gray10',
                   fg='white', command=lambda s=self, img=i: \
                       s.getImg(img)).place(relx=xpos, rely=0.99, anchor=S)
            xpos = xpos + 0.08
            self.images.append(images[i])
            
        Button(self.frame, text='Done',  command=self.exit,
               bg='red', fg='yellow').place(relx=0.99, rely=0.99, anchor=SE)
        Button(self.frame, text='Info',	 command=self.info,
	       bg='blue', fg='yellow').place(relx=0.99, rely=0.90, anchor=SE)
	self.infoDisplayed = FALSE
        self.frame.pack()
        self.getImg(0)
        
    def getImg(self, img):
        self.masterImg = Image.open(os.path.join("images",
                                                 self.images[img]))
        self.masterImg.thumbnail((350, 280))
        self.img = ImageTk.PhotoImage(self.masterImg)
        self.lbl['image'] = self.img
        
    def exit(self):
        self.master.destroy()

    def info(self):
        if self.infoDisplayed:
	    self.fm.destroy()
	    self.infoDisplayed = FALSE
        else:
	    self.fm = Frame(self.master, bg='gray10')
	    self.fm.place(in_=self.lbl, relx=0.5, relwidth=1.0, height=50,
			  anchor=S, rely=0.0, y=-4, bordermode='outside')

	    ypos = 0.15
	    for lattr in ['Format', 'Size', 'Mode']:
	        Label(self.fm, text='%s:\t%s' % (lattr,
		      getattr(self.masterImg, '%s' % string.lower(lattr))),
		      bg='gray10', fg='white',font=('verdana', 8)).place(\
		      relx=0.3, rely= ypos, anchor=W)
	        ypos = ypos + 0.35
            self.infoDisplayed = TRUE

root = Tk()
root.option_add('*font', ('verdana', 10, 'bold'))
root.title('Scrapbook')
scrapbook = Scrapbook(root)
root.mainloop()




⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?