在 Kivy 中,在将第二页拉到第一页上之后,我试图将第一页覆盖在另一页上。目前列表中的单词重叠,因为页面看起来是透明的,第二页没有覆盖第一页。我尝试更改小部件的背景颜色但无济于事,甚至尝试在某个阶段添加背景图像。请帮助这已经占用了我足够多的时间。如果可能的话,我会很感激纯 python 而不是 kv 语言的解决方案。例子:
from kivy.app import App
from kivy.lang import Builder
from kivy.uix.boxlayout import BoxLayout
from kivy.uix.pagelayout import PageLayout
from kivy.uix.button import Button
from kivy.uix.label import Label
from kivy.uix.screenmanager import ScreenManager, Screen
from kivy.core.window import Window
from kivy.graphics import Color, Rectangle
# Window.clearcolor = (252, 235, 233, 0)
class MyScreenManager(ScreenManager):
pass
class PageLayoutScreen(Screen):
pass
class PageLayout1(PageLayout):
def __init__(self, **kwargs):
super(PageLayout1, self).__init__(**kwargs)
myList = ['hello there', 'hello to you too']
t = 0
for i in myList:
nameWdgt = Label(text="[b]" + myList[t] + "[/b]", markup=True, font_size='15sp')
locationWdgt = Label(text="[b]" + myList[t] + "[/b]", markup=True, font_size='15sp')
self.add_widget(nameWdgt)
self.add_widget(locationWdgt)
# below is my attempt to cover the first item in the list "hello there" when we pull the second item in the list over it "hello to you too"
with self.canvas.before:
Color(0, 1, 0, 1) # green; colors range from 0-1 instead of 0-255
self.profile_layout = Rectangle(size=self.size, pos=self.pos)
t += 1
root_widget = Builder.load_string('''
#:import NoTransition kivy.uix.screenmanager.NoTransition
#:import sys sys
MyScreenManager:
transition: NoTransition()
PageLayoutScreen:
<PageLayoutScreen>:
name: 'test'
PageLayout1
''')
class ScreenManagerApp(App):
def build(self):
return root_widget
ScreenManagerApp().run()