【问题标题】:PySimpleGUI - scroll on canvas?PySimpleGUI - 在画布上滚动?
【发布时间】:2021-03-27 01:55:36
【问题描述】:

我有一个画布,可以在其中绘制图像

该图像包含一个控制台文本,我在其中显示最后 10 行或其他内容

我想通过捕捉鼠标滚轮事件来改变我显示的行(数组索引)

没有滚动条,所以我没有大的图像可以滚动,我只是重绘文本

这是我尝试设置滚动功能的方法:

def drawConsole(self):
    canvas = self.window["CONSOLE-CANVAS"]
    canvas.TKCanvas.bind_all("<MouseWheel>", self.vscroll)

def vscroll(self,event):
    print( -1 * (event.delta // 120) )

在我的布局中,有一个画布:

[sg.Canvas(size=(1400, 300), background_color='black', key="CONSOLE-CANVAS")],

vscroll 函数永远不会触发

感谢您在这方面帮助我

[编辑:刚刚发现 return_keyboard_events 但我如何确定我是哪个组件?]

【问题讨论】:

    标签: python pysimplegui


    【解决方案1】:

    好的,我发现了

    使用 return_keyboard_events =True

    并找出哪个组件被过度使用:

    self.window["CONSOLE-CANVAS"].bind('<Enter>', '+MOUSE OVER+')
    self.window["CONSOLE-CANVAS"].bind('<Leave>', '+MOUSE AWAY+')
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-08-26
      • 2020-09-30
      • 2011-12-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多