Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/311.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 特金特';s wrap=none的文本不能水平滚动超过可见行的宽度_Python_Tkinter_Textbox_Multiline_Horizontal Scrolling - Fatal编程技术网

Python 特金特';s wrap=none的文本不能水平滚动超过可见行的宽度

Python 特金特';s wrap=none的文本不能水平滚动超过可见行的宽度,python,tkinter,textbox,multiline,horizontal-scrolling,Python,Tkinter,Textbox,Multiline,Horizontal Scrolling,当我注意到如果看不到长线,ScrolledText小部件的水平滚动条将消失时,我一直在修补scrolled小部件的实现。结果表明,这与水平滚动条无关,是: 路径名xview 返回包含两个元素的列表。每个元素都是介于0和1之间的实分数;它们一起描述了文档在窗口中可见的水平跨度部分。例如,如果第一个元素为.2,第二个元素为.6,则20%的文本在屏幕左侧,中间40%的文本在窗口中可见,40%的文本在屏幕右侧分数仅指窗口中实际可见的行:如果窗口中的行都很短,因此它们完全可见,则返回的分数将为0和1,即使

当我注意到如果看不到长线,ScrolledText小部件的水平滚动条将消失时,我一直在修补scrolled小部件的实现。结果表明,这与水平滚动条无关,是:

路径名xview

返回包含两个元素的列表。每个元素都是介于0和1之间的实分数;它们一起描述了文档在窗口中可见的水平跨度部分。例如,如果第一个元素为.2,第二个元素为.6,则20%的文本在屏幕左侧,中间40%的文本在窗口中可见,40%的文本在屏幕右侧分数仅指窗口中实际可见的行:如果窗口中的行都很短,因此它们完全可见,则返回的分数将为0和1,即使文本中有比窗口宽得多的其他行。

通过自动隐藏滚动条,垂直滚动会使水平滚动条不断缩小、加宽,有时甚至消失(稍后会影响垂直滚动条)

我怎样才能避免这种情况

相关来源(主要由页面生成,我为另一个滚动小部件添加了一些内容):

类自动滚动(对象):
“”“为小部件配置滚动条。”“”
定义初始化(自、主、cbl=None):
尝试:
vsb=ttk.Scrollbar(master,orient='vertical',command=self.yview)
除:
通过
hsb=ttk.Scrollbar(master,orient='horizontal',command=self.xview)
尝试:
self.configure(yscrollcommand=self.\u autoscroll(vsb、cbl))
除:
通过
configure(xscrollcommand=self.\u autoscroll(hsb、cbl))
self.grid(列=0,行=0,sticky='nsew')
尝试:
网格(列=1,行=0,粘性=ns')
除:
通过
hsb.grid(列=0,行=1,sticky='ew')
主网格配置(0,权重=1)
主网格配置(0,权重=1)
#复制母版的几何体方法(取自ScrolledText.py)
方法=(
打包。目录键()|
网格.\uuuuu dict\uuuuuuu.keys()|
地点.uuu dict_uuuuu.keys()
)
对于meth-in方法:
如果(meth[0]!=“389;”和meth不在(“配置”、“配置”)中,并且
方法不在类型(自身)中。\uuuuu基\uuuuu[0]。\uuuuuu dict\uuuuuu):
setattr(自我,方法,getattr(主,方法))
def clscroll(自我、cbl):
#清单元素滚动
root.update()
对于枚举中的i,w(cbl[1]):
bb=ttk.Treeview.bbox(self,i,“#0”)
如果bb==“”:
w、 地点(你忘了)
其他:
x、 y,u,ubb=
w、 位置(x=x+(tvhh-2)/2,y=y+tvrh/2,锚定=中心)
cbl[0]。位置(x=x+(tvhh-2)/2,锚定='中心')
root.update()
#静态法
def_autoscroll(自我、sbar、cbl):
“”“根据需要隐藏和显示滚动条。”“”
def包装(第一个,最后一个):
如果是cbl:
self.clscroll(cbl)
first,last=浮动(first),浮动(last)
如果first=1:
sbar.grid_remove()
其他:
sbar.grid()
sbar.set(第一个,最后一个)
退货包装
定义(自我):
返回str(self.master)
定义创建容器(func):
“”“使用给定的主机创建一个ttk帧,并使用此新帧
放置滚动条和小部件。”“”
def包装(cls,主控,**kw):
容器=ttk.帧(主)
返回函数(cls,容器,**kw)
退货包装
类滚动文本(自动滚动,文本):
“”“带有滚动条的标准Tkinter文本小部件
根据需要自动显示/隐藏。”“”
@_创建容器
def _初始功率(自功率、主功率,**kw):
文本。\uuuuu初始值(自、主、**kw)
AutoScroll.\uuuuu初始\uuuuuuuuu(自,主)

除了重新实现整个小部件(我完全没有心情这么做)之外,我想不出别的办法。提交了一个RFE()。除了重新实现整个widget(我完全没有心情这么做)之外,我想不出别的办法。提交RFE()。
class AutoScroll(object):
    """Configure the scrollbars for a widget."""

    def __init__(self, master, cbl=None):
        try:
            vsb = ttk.Scrollbar(master, orient='vertical', command=self.yview)
        except:
            pass
        hsb = ttk.Scrollbar(master, orient='horizontal', command=self.xview)

        try:
            self.configure(yscrollcommand=self._autoscroll(vsb, cbl))
        except:
            pass
        self.configure(xscrollcommand=self._autoscroll(hsb, cbl))

        self.grid(column=0, row=0, sticky='nsew')
        try:
            vsb.grid(column=1, row=0, sticky='ns')
        except:
            pass
        hsb.grid(column=0, row=1, sticky='ew')

        master.grid_columnconfigure(0, weight=1)
        master.grid_rowconfigure(0, weight=1)
        # Copy geometry methods of master (taken from ScrolledText.py)

        methods = (
            Pack.__dict__.keys() |
            Grid.__dict__.keys() |
            Place.__dict__.keys()
        )

        for meth in methods:
            if (meth[0] != "_" and meth not in ("config", "configure") and
                    meth not in type(self).__bases__[0].__dict__):
                setattr(self, meth, getattr(master, meth))

    def clscroll(self, cbl):
        # Checklist elements scroll
        root.update()
        for i, w in enumerate(cbl[1]):
            bb = ttk.Treeview.bbox(self, i, "#0")
            if bb == "":
                w.place_forget()
            else:
                x, y, _, _ = bb
                w.place(x=x+(tvhh-2)/2, y=y+tvrh/2, anchor='center')
                cbl[0].place(x=x+(tvhh-2)/2, anchor='center')
        root.update()

    # @staticmethod
    def _autoscroll(self, sbar, cbl):
        """Hide and show scrollbar as needed."""
        def wrapped(first, last):
            if cbl:
                self.clscroll(cbl)
            first, last = float(first), float(last)
            if first <= 0 and last >= 1:
                sbar.grid_remove()
            else:
                sbar.grid()
            sbar.set(first, last)
        return wrapped

    def __str__(self):
        return str(self.master)

def _create_container(func):
    """Creates a ttk Frame with a given master, and use this new frame to
    place the scrollbars and the widget."""
    def wrapped(cls, master, **kw):
        container = ttk.Frame(master)
        return func(cls, container, **kw)
    return wrapped

class ScrolledText(AutoScroll, Text):
    """A standard Tkinter Text widget with scrollbars that will
    automatically show/hide as needed."""
    @_create_container
    def __init__(self, master, **kw):
        Text.__init__(self, master, **kw)
        AutoScroll.__init__(self, master)