Python图形tk在linux无法显示,Python Tkinter图像不显示

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

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

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

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

谢谢

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值