Jak*_*evi 3 python user-interface label tkinter scrollbar
我正在尝试制作一个 'ttk 标签',a) 高 20 像素,宽 300 像素,b) 可滚动(在这种情况下是水平的),c)在合理范围内使用最简单的代码(除了文本和滚动条都在一个框架内*)。我发现stackoverflow有助于描述我需要经历的过程(将标签放在框架中,将框架放在画布中,将滚动条放在画布旁边或下方,并以某种方式将它们“绑定”在一起) ,但尽管看了一些文档和 stackoverflow 问题,我还是不明白为什么我的代码不能正常工作。请有人 a) 更新代码以使其满足上述条件,并且 b) 让我知道我是否做了任何不必要的事情?谢谢
*该框架将用于我的一个项目,并带有相关文本
import tkinter as tk
from tkinter import ttk
root = tk.Tk()
myframe_outer = ttk.Frame(root)
mycanvas = tk.Canvas(myframe_outer, height=20, width=300)
myframe_inner = ttk.Frame(mycanvas)
myscroll = ttk.Scrollbar(myframe_outer, orient='horizontal', command=mycanvas.xview)
mycanvas.configure(xscrollcommand=myscroll.set)
myframe_outer.grid()
mycanvas.grid(row=1, sticky='nesw')
myscroll.grid(row=2, sticky='ew')
mycanvas.create_window(0, 0, window=myframe_inner, anchor='nw')
ttk.Label(myframe_inner, text='test ' * 30).grid(sticky='w')
root.mainloop()
Run Code Online (Sandbox Code Playgroud)
编辑:

使用只读的“条目”小部件 - 它看起来与标签相同,不需要放在画布中。
import tkinter as tk
from tkinter import ttk
root = tk.Tk()
mytext = tk.StringVar(value='test ' * 30)
myframe = ttk.Frame(root)
myentry = ttk.Entry(myframe, textvariable=mytext, state='readonly')
myscroll = ttk.Scrollbar(myframe, orient='horizontal', command=myentry.xview)
myentry.config(xscrollcommand=myscroll.set)
myframe.grid()
myentry.grid(row=1, sticky='ew')
myscroll.grid(row=2, sticky='ew')
root.mainloop()
Run Code Online (Sandbox Code Playgroud)

| 归档时间: |
|
| 查看次数: |
17562 次 |
| 最近记录: |