[英]Python - tkinter remove space between scrollbar and entry widgets
在我的程序中,我有一個ttk.Scrollbar
,它與只讀ttk.Entry
小部件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()
在這種特定情況下,最簡單的解決方案是使用sticky=(N, E, W)
。 您的代碼當前使它同時粘在單元格的頂部和底部( N
和S
),從而導致其以太拉伸或居中於單元格(例如,在Mac上,滾動條的大小是固定的,因此它們會居中而不是伸展)。 由於您希望它“粘貼”在其上方的小部件底部,因此您不希望它也“粘貼”在其自己單元格的底部。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.