3

以下の tkinter アプリケーションのコンテンツのスクリーンショットを作成する必要があります。Windows 7 (または 8) を使用しています。

from Tkinter import *

def test(x):    
    #print "I'm in event:", x
    if x == 1:            # if event on entry e1 
        print 'e1 event' # do some thing
    elif x == 2:            # also if event on entry e2    
        print 'e2 event'  # do some thing else
    else: 
        print 'no event' 

def test1(x):
    test(1)

def test2(x):
    test(2)


root=Tk()
root.minsize(500,500)
e1=Entry(root)
e1.pack()

e2=Entry(root)
e2.pack()

e1.bind( "<FocusOut>", test1) 
e2.bind( "<FocusOut>", test2)   
button=Button(root, text='print').pack(side=BOTTOM)

root.mainloop()
4

2 に答える 2

3

あなたがWindowsを使用していると述べたので。Win32 APIこの回答で指示されているように、 Windows で python を使用してスクリーンショットを撮る最速の方法を使用できます。お役に立てれば。


しかし、実際にはPyscreenshotが探しているものです。

たとえば、次のコードを見てください。

from pyscreenshot import grab

im = grab(bbox=(100, 200, 300, 400))
im.show()

bboxご覧のとおり、座標 (100, 200) にあり、幅 300、高さ 400 のスクリーンショットを撮るために使用できます。

また、印刷に関しては、win32api を使用した印刷を確認してください。これらがお役に立てば幸いです。

PIL を使用すると、サイズ変更を行うことができます。

from PIL import Image
from pyscreenshot import grab

img = grab(bbox=(100, 200, 300, 400))

# to keep the aspect ratio
w = 300
h = 400
maxheight = 600
maxwidth = 800
ratio = min(maxwidth/width, maxheight/height)
# correct image size is not #oldsize * ratio#

# img.resize(...) returns a resized image and does not effect img unless
# you assign the return value
img = img.resize((h * ratio, width * ratio), Image.ANTIALIAS)

印刷前に画像のサイズを変更できるようにプログラムを変更することをお勧めします

于 2013-11-13T21:14:12.577 に答える