我正在编写一个简短的脚本,在画布上显示用户选择的图像。用户选择的图像大小可能不同。从长远来看,如果加载的图像大于屏幕分辨率,我希望应用程序最大化并显示滚动条,但是我有一个很可能很简单的问题,所选图像没有加载到画布中。我只需要一双眼睛。在#!/usr/bin/python
# -*- coding: utf-8 -*-
from Tkinter import Tk, Canvas, Frame, Menu, BOTH, NW
import Image
import ImageTk
import tkFileDialog
appname = "example"
class Example(Frame):
def __init__(self, parent):
Frame.__init__(self, parent)
self.parent = parent
self.initUI()
def initUI(self):
self.parent.title( appname )
menubar = Menu(self.parent)
self.parent.config(menu=menubar)
fileMenu = Menu(menubar, tearoff=0)
fileMenu.add_command(label="Open File", command=self.fileOpen)
fileMenu.add_command(label="Exit", command=self.onExit)
menubar.add_cascade(label="File", menu=fileMenu)
def onExit(self):
self.quit()
def fileOpen(self):
file = tkFileDialog.askopenfile(
parent=self.parent,
mode='rb',
title='Choose a file',
filetypes=[ ( "Image files",("*.jpg", "*.jpeg" ) )] )
if file != None:
self.img = Image.open(file)
self.tatras = ImageTk.PhotoImage(self.img)
canvas = Canvas(self, width=self.img.size[0]+20,
height=self.img.size[1]+20)
canvas.create_image(10, 10, anchor=NW, image=self.tatras)
canvas.pack(fill=BOTH, expand=1)
def filePref(self):
self.quit()
def main():
root = Tk()
root.geometry("250x150+300+300")
app = Example(root)
root.mainloop()
if __name__ == '__main__':
main()
为什么选中时图像不加载到画布中?我没有显示错误。
如果图像大于初始窗口大小,如何最大化整个窗口?
如果图像大于屏幕分辨率,如何添加滚动条?在
谢谢