Python 3.x Python3 tkinter在小部件上放置不可见的滚动条?

Python 3.x Python3 tkinter在小部件上放置不可见的滚动条?,python-3.x,tkinter,treeview,scrollbar,Python 3.x,Tkinter,Treeview,Scrollbar,我想在树视图上放置一个看不见的滚动条 我使用的是覆盆子圆周率,有一个小触摸屏,因此我想有效地利用空间 我不得不调整我的滚动条的大小,因为我不知道如何使“滑动”——在树视图中滚动成为可能 这就是为什么我现在几乎没有空间,字体也太小了 有没有办法使滚动条不可见,但在使用place功能放置另一个小部件时仍然可用?您不需要滚动条来滚动。所有可滚动的小部件都有一个用于滚动的api:xview和yview方法。滚动条只是调用这些方法的一种方便方式,但它不是唯一的方式 我不知道刷卡会发送什么事件,但您可以绑定

我想在树视图上放置一个看不见的滚动条 我使用的是覆盆子圆周率,有一个小触摸屏,因此我想有效地利用空间 我不得不调整我的滚动条的大小,因为我不知道如何使“滑动”——在树视图中滚动成为可能 这就是为什么我现在几乎没有空间,字体也太小了
有没有办法使滚动条不可见,但在使用place功能放置另一个小部件时仍然可用?

您不需要滚动条来滚动。所有可滚动的小部件都有一个用于滚动的api:
xview
yview
方法。滚动条只是调用这些方法的一种方便方式,但它不是唯一的方式

我不知道刷卡会发送什么事件,但您可以绑定到这些事件并直接调用
xview
和/或
yview
方法

例如,让我们假设触摸是
事件,而刷卡是
事件。您可以按如下方式滚动滑动:

class Example:
    def __init__(self):
        ...
        self.tree = ttk.Treeview(...)
        self.tree.bind("<B1>", self.start_swipe)
        self.tree.bind("<B1-Motion>", self.on_swipe)
        ...

    def start_swipe(self, event):
        self.last_y = event.y

    def on_swipe(self, event):
        # only do the scrolling if the swipe is 10 pixels or more
        if abs(event.y - self.swipe_start) < 10:
            return

        # compute whether we are scrolling up or down
        delta = -1 if event.y > self.last_y else 1

        # remember this location for the next time this is called
        self.last_y = event.y

        # do the scroll
        self.tree.yview_scroll(delta, "units")
类示例:
定义初始化(自):
...
self.tree=ttk.Treeview(…)
self.tree.bind(“,self.start\u滑动)
self.tree.bind(“,self.on_滑动)
...
def start_滑动(自身、事件):
self.last_y=event.y
刷卡时的def(自身、事件):
#仅当滑动为10像素或更大时才进行滚动
如果abs(事件y-自扫启动)<10:
返回
#计算我们是向上滚动还是向下滚动
如果event.y>self.last\y else为1,则delta=-1
#下次调用时请记住此位置
self.last_y=event.y
#做卷轴
self.tree.yview_滚动条(增量,“单位”)

我也考虑过这一点,但我在任何地方都找不到有关触摸事件的信息:(@marco:触摸事件很有可能只是映射到鼠标按钮。试试上面的代码,看看它是否有效。该死,你是对的……似乎有效,非常感谢!!