我刚刚开始使用Kivy编程Python。我在使用PageLayout时遇到了麻烦。到目前为止,这是我的Python代码(Python 3.6.2):
import kivy
from kivy.app import App
from kivy.uix.pagelayout import PageLayout
class PageApp(App):
def build(self):
return PageLayout()
paApp = PageApp()
paApp.run()
Kivy文件(PageApp.kv)具有以下内容:
<PageLayout>:
canvas:
Color:
rgb: 0, .5, .95
Rectangle:
pos: self.pos
size: self.size
BoxLayout:
orientation: "vertical"
Button:
text: "This is a test button"
size_hint_y: .4
Label:
markup: True
text: "This is a [b]looooong[/b] text... "*100
color: 0, 0, 0, 1
outline_color: 0, 0.5, 0.5, 1
font_size: 30
BoxLayout:
orientation: "vertical"
Label:
markup: True
text: "This is an even [b]looooonger[/b] text... "*100
color: 0, 0, 0, 1
outline_color: 0, 0.5, 0.5, 1
font_size: 30
Button:
text: "This is a second test button"
size_hint_y: .2
Button:
text: "Page 3"
Button:
text: "Page 4"
结果如下所示:Page 1,Page 2 (after swiping)
从屏幕截图中可以看到,出现以下问题:
有谁知道如何解决这些问题?
答案 0 :(得分:0)
好
您没有设置标签的 text_size 属性,而您要展示的文字很长
抱歉,背景颜色正是您在画布中指定的颜色,请参阅下面的图片
如果您想减少当前
如果你只是想让一个小工具滑动arround子小部件,我建议你使用 Caroussel 小部件
尝试以下代码:
- 的 main.py 强>
import kivy
from kivy.app import App
from kivy.uix.pagelayout import PageLayout
class PageApp(App):
def build(self):
return PageLayout()
paApp = PageApp()
paApp.run()
- 的 page.kv 强>
<PageLayout>:
border: 5
BoxLayout:
canvas:
Color:
rgb: 0, .5, .95
Rectangle:
pos: self.pos
size: self.size
orientation: "vertical"
Button:
text: "This is a test button"
size_hint_y: .4
Label:
markup: True
text: "This is a [b]looooong[/b] text... " * 100
text_size: self.size
color: 0, 0, 0, 1
outline_color: 0, 0.5, 0.5, 1
font_size: 30
BoxLayout:
canvas:
Color:
rgb: 0, .5, .95
Rectangle:
pos: self.pos
size: self.size
orientation: "vertical"
Label:
markup: True
text: "This is an even [b]looooonger[/b] text... " * 100
color: 0, 0, 0, 1
outline_color: 0, 0.5, 0.5, 1
font_size: 30
text_size: self.size
Button:
text: "This is a second test button"
size_hint_y: .2
Button:
canvas.before:
Color:
rgb: 0, .5, .95
Rectangle:
pos: self.pos
size: self.size
text: "Page 3"
Button:
canvas.before:
Color:
rgb: 0, .5, .95
Rectangle:
pos: self.pos
size: self.size
text: "Page 4"
- 某些输出:
背景颜色证明:
我希望这有帮助!
答案 1 :(得分:0)
详情请参阅以下示例。
问题标签不显示
答案两个标签确实显示为黑色标签,因为您已超出文字大小。
在第1页中,我将乘法值从100更改为49.任何50及以上,您将看到黑色标签。
在第2页,我删除了100.在2到36之间的任何内容,文本溢出到第1页。任何37及以上,你会看到一个黑色标签。
问题背景仅部分使用我在画布设置中指定的颜色。 答案第2页未设置画布的颜色。因此,它使用的是第1页的颜色。
问题最重要的是:在刷卡后页面似乎没有重置,导致第一页的元素在刷到第2页时仍保留在页面上的问题。 4似乎工作正常,因为按钮占据整个空间...
回答您会看到右侧或左侧的边框区域,用于从一个页面滑动到下一个页面。
from kivy.app import App
from kivy.uix.pagelayout import PageLayout
class PageLayoutDemo(PageLayout):
pass
class TestApp(App):
title = "Kivy PageLayout Demo"
def build(self):
return PageLayoutDemo()
if __name__ == "__main__":
TestApp().run()
#:kivy 1.10.0
<PageLayoutDemo>:
BoxLayout:
canvas:
Color:
rgb: 0, .5, .95, 1
Rectangle:
pos: self.pos
size: self.size
orientation: "vertical"
Button:
text: "This is a test button"
size_hint_y: .4
Label:
markup: True
text: "This is a [b]looooong[/b] text... " * 49
color: 0, 0, 0, 1
outline_color: 0, 0.5, 0.5, 1
font_size: 30
BoxLayout:
orientation: "vertical"
canvas:
Color:
rgba: 109/255., 8/255., 57/255., 1
Rectangle:
pos: self.pos
size: self.size
Label:
markup: True
text: "This is an even [b]looooonger[/b] text... "
color: 0, 0, 0, 1
outline_color: 0, 0.5, 0.5, 1
font_size: 30
Button:
text: "This is a second test button"
size_hint_y: .2
Button:
text: "Page 3"
Button:
text: "Page 4"