如何在 Kivy 中为窗口移动事件编写处理程序?

     2023-04-14     226

关键词:

【中文标题】如何在 Kivy 中为窗口移动事件编写处理程序?【英文标题】:How to write a handler for window move event in Kivy? 【发布时间】:2014-08-12 21:56:45 【问题描述】:

我想为 Windows / Linux 中移动窗口后的事件编写一个处理程序。

我需要这样一个函数来重置我的应用程序的行为,因为拖动窗口将停止/暂停所有Clock.schedules,并且在窗口被释放后,带有计划的动画无法正常启动。 窗口移动期间的错误行为没有问题,但之后应用程序应正确重启。

与此代码类似的窗口调整大小:

class DemoApp(App):
    def build(self):
        def win_cb(window, width, height):
           print 'resizing'

        Window.bind(on_resize=win_cb)

有类似on_move 的东西吗?我在api-documentation中没有看到类似的东西

【问题讨论】:

【参考方案1】:

不,没有办法在 Kivy 中获取当前窗口位置。直接使用窗口后端(即pygame)可能是可能的,但这不是跨平台兼容的,而且很hacky。

但是,您肯定在这里遇到了其他问题。在移动和调整窗口大小时,动画和时钟时间表对我来说都很好。您可能想发布另一个问题,询问为什么您的日程安排被搞砸了,因为这不是预期的行为。

【讨论】:

经过进一步研究,我发现pygame根本不支持获取窗口位置。您可以做的最好的事情是从 pygame 获取本机窗口句柄,但是您需要编写特定的方法来根据 OS/WM 获取窗口位置。这是一个仅适用于 Windows 的示例:akeric.com/blog/?page_id=814 好的,感谢您提供有关日程安排的提示。也许我的应用程序有问题。我会准备一个带有一些时间表的演示应用程序,如果仍然不行,我会发布一个新问题。

编译器如何生成事件处理程序代码?

】编译器如何生成事件处理程序代码?【英文标题】:HowdoestheCompilergeneratetheEventhandlercode?【发布时间】:2009-08-2911:17:27【问题描述】:我在用户控件中添加了一个事件,我在用户控件的消费者窗口中调用了该事件,我的问题是... 查看详情

如何在 Expression Blend 中的单个事件处理程序中为按钮单击添加多个事件?

】如何在ExpressionBlend中的单个事件处理程序中为按钮单击添加多个事件?【英文标题】:HowtoaddmorethanoneeventforbuttonclickwithinasingleeventhandlerinExpressionBlend?【发布时间】:2015-04-1308:50:18【问题描述】:我有一个按钮和一个椭圆,我需... 查看详情

在 Python 中为 Kivy 播放跨平台、移动、MIDI - 这可能吗?

】在Python中为Kivy播放跨平台、移动、MIDI-这可能吗?【英文标题】:Playingcross-platform,mobile,MIDIinPythonforKivy-isthispossible?【发布时间】:2014-11-1119:50:56【问题描述】:我想在Kivy中加载和播放“.mid”MIDI文件,但主要在移动平台上(... 查看详情

在 KIVY 中运行程序时如何更改窗口上的图标

】在KIVY中运行程序时如何更改窗口上的图标【英文标题】:HowtochangetheicononthewindowwhenIrunmyprograminKIVY【发布时间】:2017-04-0116:04:15【问题描述】:所以我已经阅读了如何更改窗口上的图标,但是当我使用Kivy和Python运行我的程序时... 查看详情

如何在 Kivy Python 中为 GridLayout 的某些按钮设置高度?

】如何在KivyPython中为GridLayout的某些按钮设置高度?【英文标题】:HowtosetaheighttosomebuttonsofGridLayoutinKivyPython?【发布时间】:2016-09-3000:53:51【问题描述】:我正在使用kivy开发一个应用程序,但我遇到了一个涉及GridLayout的问题。我... 查看详情

AngularJS – 如何在 Jasmine 中为输入事件指令编写单元测试

】AngularJS–如何在Jasmine中为输入事件指令编写单元测试【英文标题】:AngularJS–howtowriteunit-testinJasmineforentereventsdirective【发布时间】:2014-09-1516:45:23【问题描述】:我在AngularJS中创建了enterevent指令,所以我想为该指令运行测试... 查看详情

如何使用 kivy 更改应用程序的画布或窗口大小

】如何使用kivy更改应用程序的画布或窗口大小【英文标题】:howdoyouchangethecanvasorwindowsizeofanappusingkivy【发布时间】:2014-09-1905:06:12【问题描述】:如何使用Kivy更改窗口的大小。我一直在四处寻找,几乎可以更改所有内容,除了... 查看详情

如何在 Blazor 中编写自定义值更改事件处理程序?

】如何在Blazor中编写自定义值更改事件处理程序?【英文标题】:HowtowriteacustomvaluechangeeventhandlerinBlazor?【发布时间】:2020-09-3023:56:38【问题描述】:我想为Blazor编写一个自定义下拉列表组件,部分原因是现有的InputSelect组件不绑... 查看详情

如何在 Spring Integration DSL 中为通道设置多个消息处理程序?

】如何在SpringIntegrationDSL中为通道设置多个消息处理程序?【英文标题】:HowtosetseveralmessagehandlersforchannelinspringintegrationDSL?【发布时间】:2019-12-2720:26:31【问题描述】:我编写了我的第一个spring集成应用程序,它从springRSS读取数... 查看详情

如何在 iPhone (iOS 5) 上的音乐应用程序中为 UITableViewCell 创建一个弹出窗口

】如何在iPhone(iOS5)上的音乐应用程序中为UITableViewCell创建一个弹出窗口【英文标题】:HowtocreateapopupfortheUITableViewCelllikeinMusicApponiPhone(iOS5)【发布时间】:2011-11-1608:07:13【问题描述】:有没有一种简单的方法来创建如下图所示的弹... 查看详情

如何使用 kivy 为移动应用程序制作相机小部件

】如何使用kivy为移动应用程序制作相机小部件【英文标题】:howtomakecamerawidgetformobileappswithkivy【发布时间】:2021-11-0108:17:33【问题描述】:我正在尝试在我的应用程序中添加一个摄像头,我希望摄像头处于全屏模式,并且我希... 查看详情

在 JavaFX 中为 TextField 设置 KeyPressed 事件

】在JavaFX中为TextField设置KeyPressed事件【英文标题】:SetKeyPressedeventforaTextFieldinJavaFX【发布时间】:2017-01-1216:38:40【问题描述】:我在名为对话框的弹出窗口中有多个TextField对象(类型:Stage)。我正在尝试为他们定义一个动作处... 查看详情

在 QT 中为图像标签创建鼠标事件

...标签,现在我想在它上面画图。所以,我的问题是——我如何只为这个图像标签创建鼠标事件,而不必派生另一类QLabel并将其对象实例化到我的主窗口。我的项目明天到期,这是我唯 查看详情

如何在 Kivy GUI 旁边运行 Tornado 事件循环?

】如何在KivyGUI旁边运行Tornado事件循环?【英文标题】:HowtoruntheTornadoeventloopalongsideaKivyGUI?【发布时间】:2017-04-2519:23:54【问题描述】:我的客户端应用程序使用KivyGUI(Kivy有自己的事件循环)并使用带有Tornado的WebSocket协议连接... 查看详情

在javafx中为textfield设置keypressed事件

我在一个名为dialog的弹出窗口中有许多TextField对象(类型:Stage)。我正在尝试为它们定义一个动作处理程序,目的是在键盘上单击转义按钮后关闭舞台。这是我关闭阶段的功能:publicvoidescapeKeyPressed(KeyCodekeyCode,Stagedialog){if(keyCod... 查看详情

dhtml_____如何编写事件处理程序

<html><head><metacharset="utf-8"><title>如何编写事件处理程序</title></head><bodyoncontextmenu="hidecontentmenu()"><divstyle="text-align:center"><b>如何编写事件处理程 查看详情

输入直到离开kivy时如何调用函数?

】输入直到离开kivy时如何调用函数?【英文标题】:Howtocallafunctionwhenentereduntilleavedkivy?【发布时间】:2021-12-1123:53:49【问题描述】:输入到离开kivy时如何调用函数?我正在通过移动kivy应用程序编写鼠标控制应用程序。我的代码... 查看详情

Kivy 应用程序无法在 Android 上运行

...间】:2019-08-0311:20:38【问题描述】:我想使用kivy在Python中为Android编写简单的应用程序。可悲的是,当我开始示例代码时,我只看到闪屏,几秒钟后应用程序完成工作。调试存在很大问题,因为LinuxMint上的adb没有检测到我的设备... 查看详情