0
제 프로그램에는 ttk.Scrollbar
이 있고 읽기 전용 ttk.Entry
위젯과 함께 작동합니다. 내가 가지고있는 문제는 엔트리 위젯의 하단과 스크롤바 위젯의 상단 사이에 간격이 있다는 것입니다. 나는 그걸 없애고 싶지만 tkinter
네거티브 패딩 등을 사용할 수 없습니다.Python-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()
똑똑하고 매력적으로 일했습니다! – RoyalSwish