所以我遇到的问题是,如果我的Kivy应用程序中有一个TextInput字段,它就无法启动。(我使用的是Pycharm社区版)
只有标签的应用程序将运行良好。
没有错误,只是应用程序的窗口不会像正常情况下使用标签时那样弹出。
这是我尝试运行的代码:
from kivy.app import App
from kivy.uix.gridlayout import GridLayout
from kivy.uix.label import Label
from kivy.uix.textinput import TextInput
class LoginScreen(GridLayout):
def __init__(self, **kwargs):
super(LoginScreen, self).__init__(**kwargs)
self.cols = 2
self.add_widget(Label(text='User Name'))
self.username = TextInput(multiline=False)
self.add_widget(self.username)
self.add_widget(Label(text='password'))
self.password = TextInput(password=True, multiline=False)
self.add_widget(self.password)
class MyApp(App):
def build(self):
return LoginScreen()
if __name__ == '__main__':
MyApp().run()
字符串
这是运行此代码时的控制台日志:
[INFO ] [Logger ] Record log in /home/camcamyoung125/.kivy/logs/kivy_23-11-23_99.txt
[INFO ] [Kivy ] v2.2.1
[INFO ] [Kivy ] Installed at "/home/camcamyoung125/.local/lib/python3.11/lib/python3.11/site-packages/kivy/__init__.py"
[INFO ] [Python ] v3.11.3 (main, Jul 23 2023, 15:10:19) [GCC 10.2.1 20210110]
[INFO ] [Python ] Interpreter at "/home/camcamyoung125/.local/lib/python3.11/bin/python3.11"
[INFO ] [Logger ] Purge log fired. Processing...
[INFO ] [Logger ] Purge finished!
[INFO ] [Factory ] 190 symbols loaded
[INFO ] [Image ] Providers: img_tex, img_dds, img_sdl2 (img_pil, img_ffpyplayer ignored)
[INFO ] [Text ] Provider: sdl2
[INFO ] [Window ] Provider: sdl2
[INFO ] [GL ] Using the "OpenGL" graphics system
[INFO ] [GL ] Backend used <sdl2>
[INFO ] [GL ] OpenGL version <b'3.1 Mesa 21.2.6'>
[INFO ] [GL ] OpenGL vendor <b'Mesa/X.org'>
[INFO ] [GL ] OpenGL renderer <b'virgl (Mesa Intel(R) UHD Graphics (CML GT2))'>
[INFO ] [GL ] OpenGL parsed version: 3, 1
[INFO ] [GL ] Shading version <b'1.40'>
[INFO ] [GL ] Texture max size <16384>
[INFO ] [GL ] Texture max units <16>
[INFO ] [Window ] auto add sdl2 input provider
[INFO ] [Window ] virtual keyboard not allowed, single mode, not docked
型
控制台日志到此结束,应用程序窗口不会弹出。
我试过扰乱解释器,但从我所能收集的不是一个解释器的问题,因为Kivy运行良好时,不使用文本输入。
任何建议或步骤,我可以尝试将不胜感激。谢谢!
编辑
所以问题出在Pycharm上,使用不同的IDE,比如Visual Code,对我来说是一个解决方案。
1条答案
按热度按时间guykilcj1#
通常情况下,IDE不应该改变Kivy或您使用的任何其他库的行为。IDE的更改可能会修改您当前的Python环境(到VSCode),允许您的代码运行。
我可以确认代码在Pycharm和VSCode中都能完美运行。默认情况下,Pycharm使用自己的虚拟环境,与VSCode相反;这可能导致了问题。
以下是我在Pycharm for Python 3.11和Kivy library 2.2.1中的完整日志:
字符串