【发布时间】:2021-06-18 01:09:53
【问题描述】:
仅当我将窗口设置为最小化时,Kivy 2.0 才会发出错误。
通常,Kivy 会优雅地关闭,控制台上没有回溯或错误信息。
但最近,我添加了一个功能,可以在最小化窗口的情况下启动 kivy 应用程序:
有两种方法可以做到(关闭应用程序时都会出错):
- 调用
Window.minimize()函数 - 设置 kivy 配置如下:
Config.set('graphics', 'window_state', 'minimized')
窗口最小化没有问题,但是当我使用上述任何一种方法关闭应用程序时,Kivy 控制台输出此错误消息:
Traceback (most recent call last):
File "C:\Users\User\Desktop\Project\main_app\main.py", line 501, in <module>
mainApp.run()
File "C:\Users\User\Desktop\Project\main_app\.env\lib\site-packages\kivy\app.py", line 950, in run
runTouchApp()
File "C:\Users\User\Desktop\Project\main_app\.env\lib\site-packages\kivy\base.py", line 584, in runTouchApp
stopTouchApp()
File "C:\Users\User\Desktop\Project\main_app\.env\lib\site-packages\kivy\base.py", line 625, in stopTouchApp
EventLoop.close()
File "C:\Users\User\Desktop\Project\main_app\.env\lib\site-packages\kivy\base.py", line 186, in close
self.stop()
File "C:\Users\User\Desktop\Project\main_app\.env\lib\site-packages\kivy\base.py", line 198, in stop
provider.stop()
File "C:\Users\User\Desktop\Project\main_app\.env\lib\site-packages\kivy\input\providers\wm_pen.py", line 114, in stop
SetWindowLong_WndProc_wrapper(self.hwnd, self.old_windProc)
File "C:\Users\User\Desktop\Project\main_app\.env\lib\site-packages\kivy\input\providers\wm_common.py", line 112, in _closure
oldAddr = func(hWnd, GWL_WNDPROC, cast(wndProc, c_void_p).value)
ctypes.ArgumentError: argument 3: <class 'TypeError'>: wrong type
这是怎么回事?
这是我使用的环境:
Python:3.9.4 (tags/v3.9.4:1f2e308, Apr 4 2021, 13:14:17) [MSC v.1928 32 bit (Intel)] on win32
基维:2.0.0
这是您重新创建错误所需的内容:
from kivy.app import App
from kivy.uix.button import Button
from kivy.config import Config
Config.set('graphics', 'window_state', 'minimized')
class TestApp(App):
def build(self):
return Button(text='Hello World')
TestApp().run()
运行此应用并关闭它。
感谢任何帮助。
【问题讨论】:
标签: python-3.x kivy