【发布时间】:2014-03-29 14:59:18
【问题描述】:
对 Tkinter 来说相当陌生。 我看过很多关于这个问题的帖子,但没有一个为我解决这个问题。 我正在尝试创建一个简单的 GUI,其中有一个显示图像的画布。 画布是可滚动的,但滚动条不会拉伸到画布的大小。
以下是我的代码的相关部分。这里没有实际显示图像的代码,图像由 openFileDialog 给出,但滚动条与图像保持一致。
from Tkinter import *
import Image
import ImageTk
import numpy as np
import tkFileDialog
import os as os
class DIP(Frame):
def __init__(self, parent):
Frame.__init__(self, parent)
self.parent = parent
self.initUI()
self.isOpenedYet = False
def initUI(self):
self.parent.title("Viewer")
self.pack(fill = BOTH, expand = 1)
menubar = Menu(self.parent)
self.parent.config(menu = menubar)
vsframe = Frame(self, width=500, height=500)
vsframe.grid(row = 1, column = 2, columnspan = 2, sticky = "nw")
hsframe = Frame(self, width=500, height=500)
hsframe.grid(row = 2, column = 1, rowspan = 2, sticky = "nw")
self.canv = Canvas(self, relief=SUNKEN)
self.canv.config(width=500, height=500)
self.canv.config(highlightthickness=0)
self.sbarV = Scrollbar(vsframe, orient=VERTICAL)
self.sbarH = Scrollbar(hsframe, orient=HORIZONTAL)
self.sbarV.config(command=self.canv.yview)
self.sbarH.config(command=self.canv.xview)
self.canv.config(yscrollcommand=self.sbarV.set)
self.canv.config(xscrollcommand=self.sbarH.set)
self.sbarV.pack(expand = YES, fill=BOTH)
self.sbarH.pack(expand = YES, fill=BOTH)
self.label2 = Label(self, border = 5)
self.label2.grid(row = 0, column = 1)
self.canv.grid(row = 1, column = 1, sticky = "nw")
#Open Image Menu
fileMenu = Menu(menubar)
fileMenu.add_command(label = "Open", command = self.onOpen)
menubar.add_cascade(label = "File", menu = fileMenu)
#menu for algorithms
basicMenu = Menu(menubar)
basicMenu.add_command(label = "Super Resolution-stub", command = self.SuperRes)
menubar.add_cascade(label = "Algorithms", menu = basicMenu)
我错过了什么?
【问题讨论】: