Tkinter滚动条奇怪

时间:2018-04-13 16:40:25

标签: python python-3.x tkinter

我目前正在制作一个程序,以帮助我简化工作单中的笔记。我已经能够在一台机器上使用UI工作得很好但在其他机器上却看起来不同。我唯一的问题是滚动条。我使用Tkinter作为UI框架,因为这是唯一一个列入白名单的机器,并且所有机器都在运行相同的Windows 7 64位和Python环境。

from tkinter import *
import tkinter as tk
import tkinter.ttk as ttk
import tkinter.messagebox
import tkinter.simpledialog

# create the window
top = Tk()
top.title("Notes Generator")
top.resizable(0, 0)
top.option_add("*Font", "Times 10")

txtDiscovery = Text(top, height=6, wrap=WORD)
scrolldiscovery = ttk.Scrollbar(top, orient=VERTICAL, command=txtDiscovery.yview)
txtDiscovery['yscrollcommand'] = scrolldiscovery.set
txtDiscovery.grid(row=3, columnspan=4, rowspan=6, padx=(8, 0), pady=8)
scrolldiscovery.grid(row=3, column=4, rowspan=6, sticky='nsew', padx=(0, 8), pady=8)


# Loop the loop
top.mainloop()

This is the way it's supposed to look

This is the way it's actually looking

编辑:对于不包含所有必要信息表示歉意。已经包含了仍然生成布局异常的程序的工作框架。

1 个答案:

答案 0 :(得分:0)

我能够找到问题。在代码的完整版本中,我在窗口底部有一个额外的框架,包含几个按钮。我在代码中设置了这些按钮的宽度,由于某种原因,Python在我的机器和其他机器之间分配了不同的像素值。这导致屏幕底部的框架在其他机器上更宽,并使最后一列更宽以补偿。我能够使用grid_columnconfigure为我的按钮设置3个相等的列,并使用sticky选项展开它们。我不知道grid_columnconfigure是否存在或者它做了什么。