Tkinter 标签限制行数?

问题描述 投票:0回答:1

我使用

wraplength
来限制标签每行的字符数。有没有办法也可以限制标签可以拥有的行数?我希望它最多有 2 行文本。 Screenshot of label

我尝试过设置高度,但这似乎没有任何作用。

相关代码如下:

self.nowplayingsong = customtkinter.CTkLabel(self, text="Lorem ipsum dolor sit amet, consectetur adipiscing elit. Quisque velit tellus", fg_color="transparent", font=("Arial", 100), anchor="w", justify='left', wraplength=700)
        self.nowplayingsong.grid(row=2, column=0, padx=100, pady=0, columnspan=3, sticky="W")
python tkinter customtkinter
1个回答
0
投票

我非常确定在

Tkinter
customtkinter
中,没有直接的方法来限制标签小部件中的行数。 但是,您可以使用文本小部件控制显示的行数。

文本小部件应该提供对文本显示的更多控制,并可用于限制行数。 您可以通过设置小部件的高度将文本小部件配置为仅显示特定数量的行。

以下是如何使用文本小部件的示例:

text = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Quisque velit tellus, dapibus in dolor et, tincidunt faucibus nunc. Etiam vehicula quam ac metus."
        max_lines = 2
        wraplength = 700  # Width in pixels
        
        limited_text = self.limit_text_to_max_lines(text, max_lines)
        
        self.text_widget = tk.Text(self, height=max_lines, wrap=tk.WORD, )
        self.text_widget.insert(tk.END, limited_text)
        self.text_widget.configure(state='disabled')  
        self.text_widget.pack(padx=10, pady=10)
        
    def limit_text_to_max_lines(self, text, max_lines):
        lines = text.split('\n')
        if len(lines) > max_lines:
            lines = lines[:max_lines]
            lines[-1] = lines[-1].rstrip() + "..."  
        return "\n".join(lines)

我不确定这是否是您在寻找的东西,但我希望我能提供帮助。

© www.soinside.com 2019 - 2024. All rights reserved.