我正在编写一个简短的脚本,在画布上显示用户选择的图像。用户选择的图像大小可能不同。从长远来看,如果加载的图像大于屏幕分辨率,我希望应用程序最大化并显示滚动条,但是我有一个很可能很简单的问题,所选图像没有加载到画布中。我只需要一双眼睛。在#!/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()

为什么选中时图像不加载到画布中?我没有显示错误。

如果图像大于初始窗口大小,如何最大化整个窗口?

如果图像大于屏幕分辨率,如何添加滚动条?在

谢谢

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐