samedi 25 juin 2016

GUI with Tkinter, rauto efresh an image

from __future__ import print_function from Tkinter import * from tkFont import Font #import RPi.GPIO as GPIO from subprocess import call import time from time import sleep from PIL import Image from PIL import ImageTk ###STARTING A CLASS### class MyDialog(Frame): def __init__(self, parent): Frame.__init__(self,parent) self.parent = parent self.mouse_pressed = False self.initUI() delay = 1000 def initUI(self): self.tkimg = [None] self.img = None self.parent.title("High Tatras") self.pack(fill=BOTH, expand=1) self.img = Image.open("C:/Code_data/captures/test1_raw.png") self.img = Image.new('1', (100, 100), 0) self.img = self.img.resize((400, 400), Image.ANTIALIAS) self.tkimg[0] = ImageTk.PhotoImage(self.img) #self.config(image=self.tkimg[0]) canvas = Canvas(self, width=400, height=800+20) canvas.create_image(10, 10, anchor=NW, image=self.tkimg[0]) canvas.pack(fill=BOTH, expand=1) self.update_idletasks() self.after(delay, self.initUI()) def main(): root = Tk() ex = MyDialog(root) ex.initUI() root.wait_window(ex.top) if __name__ == '__main__': main() I'm a beginner in python, biulding a GUI that will auto refresh an image taken by a webcam and do other stuff omitted here. The image is saved locally as the same name as in the code(C:/Code_data/captures/test1_raw.png). Here is my solution, but after I ran the code, the GUI appeared for a second and disappeared. What I'm doing wrong? I'm wondering if there is efficient way to do it?

Aucun commentaire:

Enregistrer un commentaire