我想创建一个类似于Label的对象,但我希望它也可以选择进行复制粘贴。我使用Text小部件完成了这个:
class CopyLabel (Text):
def __init__ (self, master, text = '', font = None):
if font is None:
super().__init__(master = master, height = 1,
borderwidth = 0, width = len(text),
bg = master['background'])
else:
super().__init__(master = master, height = 1,
borderwidth = 0, font = font,
width = len(text), bg = master['background'])
self.insert(1.0, text)
self.configure(state = 'disabled')
我最终用网格显示这个小部件。但是,我随机找到最后1或2个字符未显示。在研究这个时,似乎Text小部件将这些字符拆分为一个新行(选择文本时,可以向下拖动以查看第二行)。最大的问题是这种分裂的不可预测性(我尝试做宽度= len(文本)+ 2,但我偶尔也会得到这种分裂行为)。有没有办法纠正这种行为?
编辑:设置wrap ='无'修复了行拆分行为,但文本仍然被截断。现在我必须水平滚动而不是垂直滚动以查看文本,但我想这与我提出的问题不同。
答案 0 :(得分:2)
您遇到的内容称为换行,可以禁用修改文本窗口小部件的wrap
选项,如下所示:
self['wrap'] = 'none'
或
self.config(wrap='none')