免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2231 | 回复: 4
打印 上一主题 下一主题

Tkinter求助 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2010-05-13 11:14 |只看该作者 |倒序浏览
本帖最后由 zhichiamd 于 2010-05-13 11:23 编辑

我想通过菜单的打开图像选项打开图像,并显示在窗体的canvas上,打开图像正常,却不能显示出来。求大虾们帮忙看看。

# GUI of SmartEye

from Tkinter import *
from tkFileDialog import *

import tkMessageBox
import ImageTk
import Image
import sys

root = Tk()
root.geometry('800x610')
root.title(u'smart-eye')

class GUI():
    def __init__(self, master = None):
#        self.img_stream = None
        self.master = master

        proot = master
        self.mBar = Frame(master, relief = RAISED, borderwidth = 2)
        self.mBar.pack(fill = X)

        # Create MenuBar
        print 'create menu'
        self._btn_1 = self.makeMenu_1()
        self._btn_2 = self.makeMenu_2()
        self._help  = self.makeMenu_3()

        # ShowImg
        print 'create canvas'
        self.canvas = None
        Csize = (800,600)
        self.ShowImg = Canvas(master, width = 640, height = 480, bg = 'yellow')
        self.ShowImg.pack()

        
    def openImg(self):
        op_name = askopenfilename(filetypes=[("image files", "*.bmp, *.jpg, *.gif")])
        if op_name:
            self.img_name = op_name
            img = Image.open(op_name)
            if img:
                print img.format, "%dx%d" % img.size, img.mode
                pimg = ImageTk.PhotoImage(img)
                self.ShowImg.create_oval(10, 10, 100, 100, fill = 'grey90')
                self.ShowImg.create_image(0, 0, image = pimg)
               
            else:
                print "can't open this image..."
        else:
            print "Null image address..."
    def about(self):
        tkMessageBox.showinfo("smart-eye","version:0.1\n" "2010.05.12\n" "author:Joker.wang")


    def saveImg(self):
        print 'save image'
        s_name = asksaveasfilename()
        if sname:
            print "save image as..."
            self.ShowImg().create_image(0, 0, image = s_name, anchor = CENTER)
                  
    def close(self):
        root.destroy()

    def makeMenu_1(self):
        tMenu = ((u'Image File', 0),
                 (u'Open Image', 0),
                 (u'Save Image', 0),
                 (u'Quit',       0)
                 )
        
        btn = Menubutton(self.mBar, text = tMenu[0][0], underline = tMenu[0][1])
        btn.pack(side = LEFT, padx = '2m')
        btn.menu = Menu(btn)

        btn.menu.add_command(label = tMenu[1][0], underline = tMenu[1][1],
                             command = self.openImg)
        btn.menu.add_command(label = tMenu[2][0], underline = tMenu[2][1],
                             command = self.saveImg)
        btn.menu.add_separator()
        btn.menu.add_command(label = tMenu[3][0], underline = tMenu[3][1],
                             command = self.close)

        btn['menu'] = btn.menu

        return btn
   
    def makeMenu_2(self):
        tMenu = ((u'A', 0),
                 (u'A_A', 0),
                 (u'A_A_A', 0),
                 (u'A_A_A_A', 0)
                 )
        # First level
        btn = Menubutton(self.mBar, text = tMenu[0][0], underline = tMenu[0][1])
        btn.pack(side = LEFT, padx = '2m')
        # second level
        btn.menu = Menu(btn)

        # Thrid level
        btn.menu.choices = Menu(btn.menu)

        # fourth level
        btn.menu.choices.wieerdones = Menu(btn.menu.choices)
        btn.menu.choices.wieerdones.add_command(label = tMenu[3][0])

        btn.menu.choices.add_command(label = tMenu[2][0])        
        btn.menu.choices.add_cascade(label = tMenu[2][0], menu = btn.menu.choices.wieerdones)

        btn.menu.add_command(label = tMenu[1][0])

        btn.menu.add_cascade(label = tMenu[1][0], menu = btn.menu.choices)
        btn['menu'] = btn.menu

        return btn
    def makeMenu_3(self):
        tMenu = ((u'Help', 0),
                 (u'About me', 0)
                 )
        
        btn = Menubutton(self.mBar, text = tMenu[0][0], underline = tMenu[0][1])
        btn.pack(side = LEFT, padx = '2m')
        btn.menu = Menu(btn)

        btn.menu.add_command(label = tMenu[1][0], underline = tMenu[1][1],
                             command = self.about)

        btn['menu'] = btn.menu

        return btn
        
   
   

#root = Tk()
#root.geometry('800x600')
#root.title(u'smart-eye')

app = GUI(root)

root.mainloop()

论坛徽章:
0
2 [报告]
发表于 2010-05-15 13:49 |只看该作者
每一个帮忙的 伤心 自己顶

论坛徽章:
0
3 [报告]
发表于 2010-05-15 15:22 |只看该作者
TK 这东西用在嵌入式的么?桌面上很少见到……

论坛徽章:
0
4 [报告]
发表于 2010-05-15 18:46 |只看该作者
嵌入式是不可能的

论坛徽章:
0
5 [报告]
发表于 2010-05-15 19:49 |只看该作者
问题解决 还是得靠自己
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP