如何让tkinter Listbox中的文本适应?

2 投票
1 回答
2687 浏览
提问于 2025-04-18 07:54

我到处寻找解决办法,结果发现了这个:

如何让Tkinter的列表框适应内容

但这个问题问的正好和我想要的相反。我希望列表框保持我设置的大小,但文本却像上面链接的截图那样超出了边界。有没有办法在字符数达到列表框的长度时强制在字符串中添加一个\n换行符呢?

另外,如果我的问题格式有问题,我很抱歉,我之前从来没有在这里发过帖。

class Stars(Tk):
    def __init__(self):
        Tk.__init__(self)
        self.feed = Listbox(self, width = 55 , height = 31, relief = SUNKEN, borderwidth = 3)
        self.feed.grid(row = 1, column = 2, columnspan = 2)

    def simulate(self):
        self.mass = eval(self.massEntry.get())
        self.feed.insert(END, 'Star to be created with mass of {} * 10^30 kg; {} solar masses.'.format(1.98855 * self.mass, self.mass))
        self.feed.insert(END, '0 years: Protostar formed in an interstellar gas cloud, and begins to compress due to gravity.')

这是所有相关的代码(我在尝试做一个恒星演化模拟)。运行时的效果是这样的,问题用红色圈起来了:

https://i.stack.imgur.com/8VjOM.jpg

1 个回答

2

不,Listbox 这个控件是不能让文字换行的。如果你想要文字能换行,可以使用 Text 这个控件。如果你想像在列表框里那样选择项目,可以添加一些自定义的设置来实现这个功能。

撰写回答