Kivy/Python 在 rpi 触摸屏上显示白屏的代码
Kivy/Python code displaying white screen on rpi touchscreen
我写的一些代码似乎在桌面上运行时遇到了一些问题,但是当复制到我的树莓派 pi/touchscreen 时,我得到一个纯空白的屏幕。 Rpi 已经安装了 kivy。 Kivy 演示在两个系统上都运行良好。 kivy 上有没有可能有 import Window 的东西?任何建议将不胜感激!
编辑 1:我在网上看到其他人有类似的问题,需要添加(来自 kivy.lang.builder import Builder)和(Builder.load_file.py)。我在 python 代码中添加了这个,这让我看到了原始程序的 most。一些 Kivy 正在显示,尽管出于某种原因 - 图形 menu.png 丢失了,页面底部的 textbox/grid 布局也丢失了(下面的 kivy 代码的底部)。这可能是我的定位问题,所以我会研究一下。
编辑 2:这应该已解决 - 它正在为 python 代码实现 Builder(正确版本如下所示)。我还发现- raspberry pi 可能与名为 'menu.png' 的图像有问题...只需更改图像的名称,一切都可见。不知道那个。感谢您的协助。
Python代码:
from time import sleep
from kivy.app import App
from kivy.uix.widget import Widget
from kivy.properties import ObjectProperty
from kivy.core.window import Window
from kivy.graphics import Color, Rectangle
from kivy.lang.builder import Builder
Builder.load_file('my.kv')
class MyFloatLayout(Widget):
def formula(self, num):
print (num)
self.ids.formula_input.text = ''
self.ids.formula_input.text = f'{num}'
def press(self):
loaded = self.ids.formula_input.text
loadnum = int(loaded)
if loaded == "":
print(f'Please enter a formula to continue!')
self.ids.disp_stat.text = f'Please enter a formula'
else:
print(f'Dispensing Formula {loaded}!')
self.ids.disp_stat.text = f'Dispensing Formula #{loaded}!'
self.ids.formula_input.text = ''
class MyApp(App):
def build(self):
Window.clearcolor = (1,1,1,1)
return MyFloatLayout()
if __name__ == '__main__':
MyApp().run()
Kivy 代码:
(sideways carrot)MyFloatLayout(sideways carrot)
disp_stat:disp_stat
formula_input:formula_input
FloatLayout:
size: root.width, root.height
Label:
text: "Welcome To Sharp!"
color: (0,0,0,1)
font_size: 40
size_hint: (0.5,0.2)
pos_hint: {"x":0.2, "top":1}
Image:
padding:200
source: 'mylogo.png'
size_hint: (0.5,0.25)
pos_hint: {"x":.6, "top":1}
allow_stretch: True
keep_ratio: True
Image:
padding:200
source: 'funimg.png'
size_hint: (.5, .5)
pos_hint: {"x":0, "top":.75}
allow_stretch: True
keep_ratio: True
GridLayout:
cols:1
size_hint: (.4,.5)
pos_hint: {"x":0.55, "top":.8}
Label:
text: "Select Your Formula:"
font_size: 24
color: (0,0,0,1)
GridLayout:
cols:2
size_hint: (1,1)
Button:
text: "Relax"
on_press: root.formula(1)
Button:
text: "Shemax"
on_press: root.formula(2)
Button:
text: "Memax"
on_press: root.formula(3)
Button:
text: "Bebax"
on_press: root.formula(4)
Button:
text: "Initialize Dispense!"
font_size: 24
size_hint: (.2,.3)
on_press: root.press()
GridLayout:
cols:2
size_hint: (0.4,0.07)
pos_hint: {"x":.05, "y":.06}
Label:
id:disp_stat
text: "Formula to dispense:"
color: (0,0,0,1)
font_size: 12
TextInput:
id:formula_input
text: ""
font_size:12
size_hint: (0.5,0.07)
有同样的问题。通过在 Raspberry Pi.
上增加专用于 GPU 的内存来解决它
编辑您的 /boot/config.txt
文件(需要 sudo
)
向下滚动到 [all]
部分,然后按如下方式编辑 gpu_mem
行:
gpu_mem=256
然后重启你的 pi。
我写的一些代码似乎在桌面上运行时遇到了一些问题,但是当复制到我的树莓派 pi/touchscreen 时,我得到一个纯空白的屏幕。 Rpi 已经安装了 kivy。 Kivy 演示在两个系统上都运行良好。 kivy 上有没有可能有 import Window 的东西?任何建议将不胜感激!
编辑 1:我在网上看到其他人有类似的问题,需要添加(来自 kivy.lang.builder import Builder)和(Builder.load_file.py)。我在 python 代码中添加了这个,这让我看到了原始程序的 most。一些 Kivy 正在显示,尽管出于某种原因 - 图形 menu.png 丢失了,页面底部的 textbox/grid 布局也丢失了(下面的 kivy 代码的底部)。这可能是我的定位问题,所以我会研究一下。
编辑 2:这应该已解决 - 它正在为 python 代码实现 Builder(正确版本如下所示)。我还发现- raspberry pi 可能与名为 'menu.png' 的图像有问题...只需更改图像的名称,一切都可见。不知道那个。感谢您的协助。
Python代码:
from time import sleep
from kivy.app import App
from kivy.uix.widget import Widget
from kivy.properties import ObjectProperty
from kivy.core.window import Window
from kivy.graphics import Color, Rectangle
from kivy.lang.builder import Builder
Builder.load_file('my.kv')
class MyFloatLayout(Widget):
def formula(self, num):
print (num)
self.ids.formula_input.text = ''
self.ids.formula_input.text = f'{num}'
def press(self):
loaded = self.ids.formula_input.text
loadnum = int(loaded)
if loaded == "":
print(f'Please enter a formula to continue!')
self.ids.disp_stat.text = f'Please enter a formula'
else:
print(f'Dispensing Formula {loaded}!')
self.ids.disp_stat.text = f'Dispensing Formula #{loaded}!'
self.ids.formula_input.text = ''
class MyApp(App):
def build(self):
Window.clearcolor = (1,1,1,1)
return MyFloatLayout()
if __name__ == '__main__':
MyApp().run()
Kivy 代码:
(sideways carrot)MyFloatLayout(sideways carrot)
disp_stat:disp_stat
formula_input:formula_input
FloatLayout:
size: root.width, root.height
Label:
text: "Welcome To Sharp!"
color: (0,0,0,1)
font_size: 40
size_hint: (0.5,0.2)
pos_hint: {"x":0.2, "top":1}
Image:
padding:200
source: 'mylogo.png'
size_hint: (0.5,0.25)
pos_hint: {"x":.6, "top":1}
allow_stretch: True
keep_ratio: True
Image:
padding:200
source: 'funimg.png'
size_hint: (.5, .5)
pos_hint: {"x":0, "top":.75}
allow_stretch: True
keep_ratio: True
GridLayout:
cols:1
size_hint: (.4,.5)
pos_hint: {"x":0.55, "top":.8}
Label:
text: "Select Your Formula:"
font_size: 24
color: (0,0,0,1)
GridLayout:
cols:2
size_hint: (1,1)
Button:
text: "Relax"
on_press: root.formula(1)
Button:
text: "Shemax"
on_press: root.formula(2)
Button:
text: "Memax"
on_press: root.formula(3)
Button:
text: "Bebax"
on_press: root.formula(4)
Button:
text: "Initialize Dispense!"
font_size: 24
size_hint: (.2,.3)
on_press: root.press()
GridLayout:
cols:2
size_hint: (0.4,0.07)
pos_hint: {"x":.05, "y":.06}
Label:
id:disp_stat
text: "Formula to dispense:"
color: (0,0,0,1)
font_size: 12
TextInput:
id:formula_input
text: ""
font_size:12
size_hint: (0.5,0.07)
有同样的问题。通过在 Raspberry Pi.
上增加专用于 GPU 的内存来解决它编辑您的 /boot/config.txt
文件(需要 sudo
)
向下滚动到 [all]
部分,然后按如下方式编辑 gpu_mem
行:
gpu_mem=256
然后重启你的 pi。