【发布时间】:2014-01-23 14:10:36
【问题描述】:
在我的程序中,我有一个ttk.Scrollbar,它与一个只读的ttk.Entry 小部件协同工作。我遇到的问题是条目小部件的底部和滚动条小部件的顶部之间有一个间距。我想摆脱它,但tkinter 不允许您使用负填充等。
出于某种原因,滚动条是唯一自然放置pady 属性的小部件。
下面是代码,滚动条小部件和相关条目小部件被注释掉了。
from tkinter import *
from tkinter import ttk
def calculate(*args):
try:
value = int(binary.get(), 2)
decimal.set(value)
except ValueError:
error = "Please enter a binary value."
decimal.set(error)
pass
root = Tk() #set object `root` to `Tk()`
root.title("Binary to Decimal Converter")
root.wm_iconbitmap("binaryicon.ico")
root.grid_columnconfigure(0, weight = 1)
root.resizable(False, False)
mainframe = ttk.Frame(root, padding = "3 3 12 12")
mainframe.grid(column = 0, row = 0, sticky = (N, W, E, S))
mainframe.columnconfigure(0, weight = 1)
mainframe.rowconfigure(0, weight = 1)
binary = StringVar()
decimal = StringVar()
binary_entry = ttk.Entry(mainframe, width = 32, textvariable = binary)
binary_entry.grid(column = 2, row = 1, sticky = (W, E))
"""decimalView = ttk.Entry(mainframe, state = "readonly", background = "gray99", width = 32, textvariable = decimal)
decimalView.grid(column = 2, row = 2, sticky = W)
scrollbar = ttk.Scrollbar(mainframe, orient = HORIZONTAL, command = decimalView.xview)
scrollbar.grid(column = 2, row = 3, sticky = (N, S, E, W))
decimalView.configure(xscrollcommand = scrollbar.set)"""
ttk.Button(mainframe, text = "Calculate", command = calculate).grid(column = 3, row = 3, sticky = W)
ttk.Label(mainframe, text = "Binary").grid(column = 3, row = 1, sticky = W)
ttk.Label(mainframe, text = "Decimal").grid(column = 3, row = 2, sticky = W)
binary_entry.focus()
root.bind("<Return>", calculate)
root.mainloop()
【问题讨论】:
标签: python widget tkinter scrollbar