【问题标题】:Python 3.6.1 tkinter Scrollbar behaviorPython 3.6.1 tkinter 滚动条行为
【发布时间】:2018-02-13 19:17:01
【问题描述】:

在具有很多行的 Python 3.6.1 tkinter 文本小部件中,添加的水平滚动条在滚动垂直滚动条时长度不同(由于不同的行长)

from tkinter import *

root = Tk()

menu = Menu(root)
root.config(menu=menu)

filemenu = Menu(menu)
menu.add_cascade(label="menu1", menu=filemenu)
filemenu.add_command(label="menu2")
text = Text(root, wrap=NONE)
scrollbarVertical = Scrollbar(root, orient=VERTICAL)
scrollbarHorizontal = Scrollbar(root, orient=HORIZONTAL)
scrollbarVertical.config(command=text.yview)
scrollbarHorizontal.config(command=text.xview)
scrollbarVertical.grid(row=0, column=1, sticky=NSEW)
scrollbarHorizontal.grid(row=1, column=0, sticky=NSEW)
text.config(yscrollcommand=scrollbarVertical.set)
text.config(xscrollcommand=scrollbarHorizontal.set)
text.grid(row=0, column=0, sticky=NSEW)
root.grid_rowconfigure(0, weight=1)
root.grid_columnconfigure(0, weight=1)

root.mainloop()

【问题讨论】:

  • 问题是什么?
  • 能否请您发布一个最小代码来显示您的问题?
  • 问题是,滚动条不应该移动......
  • 这不是右腿作为最小代码的意思。他说的是Minimal, Complete, and Verifiable example,如果没有看到问题的所有相关代码,我们将无能为力。这包括您如何放置滚动条以及在哪些框架中
  • 您可以创建一个带有文本框和 2 个滚动条的小示例。这应该足以为您的问题提供一个工作示例。

标签: python tkinter scrollbar


【解决方案1】:

对此你无能为力——水平滚动条的基本设计取决于最长的可见行的长度。

【讨论】:

  • 所以避免这种情况的唯一方法是将所有行扩展为等长的空格?!
  • 是的,这可能是避免它的唯一方法。除非您使用固定宽度的字体,否则即使这样也很困难。
  • 由于我的工具仅显示内容,因此很容易检查最大长度并平均扩展其他内容。但总的来说,这是 tkinter 的不良行为......
猜你喜欢
  • 1970-01-01
  • 2016-11-23
  • 2020-11-09
  • 2018-04-25
  • 1970-01-01
  • 2015-04-03
  • 2016-07-07
  • 2019-04-15
相关资源
最近更新 更多