gpt4 book ai didi

python - 如何让文本框水平滚动插入的小部件?

转载 作者:太空宇宙 更新时间:2023-11-03 14:01:36 28 4
gpt4 key购买 nike

如果我创建一个文本框并用比文本框宽度长的文本填充它,则滚动条可以正常工作。像这样:

import tkinter as tk
from tkinter import ttk

root = tk.Tk()

vbar = ttk.Scrollbar(root, orient="horizontal")
vbar.grid(column=0, row=2, sticky="NWSE")
text_box = tk.Text(root, width=50, height=30, xscrollcommand=vbar.set, wrap=tk.NONE)
text_box.grid(column=0, row=0, padx=(5, 5))
text_box.grid_propagate(0)
vbar.config(command=text_box.xview)

for n in range(0, 60):
text_box.insert(tk.END,"*")

root.mainloop()

但我想在此主文本框中插入文本框并水平滚动它们。它插入了两个文本框,但滚动条未激活,因此我无法查看第三个文本框。我不希望文本框扩展以容纳嵌套文本框,因此 text_box.grid_propagate(0)

有什么办法可以做到这一点吗?

这是代码。

import tkinter as tk
from tkinter import ttk

root = tk.Tk()

vbar = ttk.Scrollbar(root, orient="horizontal")
vbar.grid(column=0, row=2, sticky="NWSE")
text_box = tk.Text(root, width=50, height=30, xscrollcommand=vbar.set, wrap=tk.NONE)
text_box.grid(column=0, row=0, padx=(5, 5))
text_box.grid_propagate(0)
vbar.config(command=text_box.xview)

tweet_windows = ["Window 1", "Window 2", "Window 3"]

for n in range(0, len(tweet_windows)):
tweet_windows[n] = tk.Text(text_box, width=23)
tweet_windows[n].grid(column=n, row=1)

root.mainloop()

最佳答案

好吧,我明白了。您需要生成需要嵌套的文本小部件数量,但不能对它们进行网格化。然后使用主文本小部件的 .create_window 方法将它们放置在主文本小部件内。可以以通常的方式引用和更新嵌套的小部件。

这是代码。

import tkinter as tk
from tkinter import ttk

root = tk.Tk()

vbar = ttk.Scrollbar(root, orient="horizontal")
vbar.grid(column=0, row=2, sticky="NWSE")
text_box = tk.Text(root, width=50, height=30, xscrollcommand=vbar.set, wrap=tk.NONE)

text_box.grid(column=0, row=0, padx=(5, 5))
text_box.grid_propagate(0)
vbar.config(command=text_box.xview)

text1 = tk.Text(width=23)
text1.insert(tk.END, "test")
text2 = tk.Text(width=23)
text2.insert(tk.END, "test2")
text3 = tk.Text(width=23)
text3.insert(tk.END, "test3")

text_box.window_create(tk.END, window=text1)
text_box.window_create(tk.END, window=text2)
text_box.window_create(tk.END, window=text3)

text3.insert(tk.END, "\nMore text")

root.mainloop()

关于python - 如何让文本框水平滚动插入的小部件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49207769/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com