【问题标题】:Python - tkinter remove space between scrollbar and entry widgetsPython - tkinter 删除滚动条和条目小部件之间的空间
【发布时间】: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


    【解决方案1】:

    在这种特定情况下,最简单的解决方案是使用sticky=(N, E, W)。您的代码目前使其粘在单元格的顶部和底部(NS),导致它在单元格中以以太拉伸或居中(例如,在 Mac 上,滚动条是固定大小,因此它们将居中而不是拉伸)。由于您希望它“粘”在紧邻其上方的小部件底部,因此您不希望它也“粘”在自己单元格的底部。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-06-28
      • 1970-01-01
      • 2013-03-15
      • 1970-01-01
      • 2015-01-10
      相关资源
      最近更新 更多