【发布时间】:2021-07-04 19:27:22
【问题描述】:
我正在尝试制作一个监控应用程序,您可以在其中切换哪个统计信息将是主要小部件。我想有一个屏幕管理器,然后为每个统计数据设置单独的屏幕,但似乎会有更好的方法。
下面是我的 kv 文件,其中每个布局都有单独的屏幕,工具栏位于屏幕之外:
<Mytest>
GridLayout
cols: 1
size: root.size
StackLayout:
orientation: 'lr-tb'
size_hint_y: .05
Button:
text: "pog"
size_hint_x: .1
background_color: (0, 0, 0, 0)
on_press: root.ids.manager.current = 'first'
Button:
text: "p"
size_hint_x: .1
background_color: (0, 0, 0, 0)
on_press: root.ids.manager.current = 'second'
Button:
text: " o"
size_hint_x: .1
background_color: (0, 0, 0, 0)
on_press: root.ids.manager.current = 'third'
Button:
text: "G"
size_hint_x: .1
background_color: (0, 0, 0, 0)
on_press: root.ids.manager.current = 'fourth'
ScreenManager:
id:manager
Screen:
name: 'first'
GridLayout:
cols: 2
rows: 1
GridLayout:
cols: 1
spacing: (3, 5)
Label:
text:"Idk"
canvas.before:
Color:
rgba: (.2, 1, 1, 1)
Rectangle:
pos: self.pos
size: self.size
Label:
text:"Idk"
canvas.before:
Color:
rgba: (1, 1, .2, 1)
Rectangle:
pos: self.pos
size: self.size
Label:
text:"Idk"
canvas.before:
Color:
rgba: (0, 1, 0, 1)
Rectangle:
pos: self.pos
size: self.size
Splitter:
sizeable_from: "left"
strip_size: "7pt"
Label:
text:"POGER"
canvas.before:
Color:
rgba: (1, 0, 0, 1)
Rectangle:
pos: self.pos
size: self.size
Screen:
name: 'second'
GridLayout:
cols: 2
rows: 1
GridLayout:
cols: 1
spacing: (3, 5)
Label:
text:"POGER"
canvas.before:
Color:
rgba: (1, 0, 0, 1)
Rectangle:
pos: self.pos
size: self.size
Label:
text:"Idk"
canvas.before:
Color:
rgba: (1, 1, .2, 1)
Rectangle:
pos: self.pos
size: self.size
Label:
text:"Idk"
canvas.before:
Color:
rgba: (0, 1, 0, 1)
Rectangle:
pos: self.pos
size: self.size
Splitter:
sizeable_from: "left"
strip_size: "7pt"
Label:
text:"Idk"
canvas.before:
Color:
rgba: (.2, 1, 1, 1)
Rectangle:
pos: self.pos
size: self.size
Screen:
name: 'third'
GridLayout:
cols: 2
rows: 1
GridLayout:
cols: 1
spacing: (3, 5)
Label:
text:"Idk"
canvas.before:
Color:
rgba: (.2, 1, 1, 1)
Rectangle:
pos: self.pos
size: self.size
Label:
text:"POGER"
canvas.before:
Color:
rgba: (1, 0, 0, 1)
Rectangle:
pos: self.pos
size: self.size
Label:
text:"Idk"
canvas.before:
Color:
rgba: (0, 1, 0, 1)
Rectangle:
pos: self.pos
size: self.size
Splitter:
sizeable_from: "left"
strip_size: "7pt"
Label:
text:"Idk"
canvas.before:
Color:
rgba: (1, 1, .2, 1)
Rectangle:
pos: self.pos
size: self.size
Screen:
name: 'fourth'
GridLayout:
cols: 2
rows: 1
GridLayout:
cols: 1
spacing: (3, 5)
Label:
text:"Idk"
canvas.before:
Color:
rgba: (.2, 1, 1, 1)
Rectangle:
pos: self.pos
size: self.size
Label:
text:"Idk"
canvas.before:
Color:
rgba: (1, 1, .2, 1)
Rectangle:
pos: self.pos
size: self.size
Label:
text:"POGER"
canvas.before:
Color:
rgba: (1, 0, 0, 1)
Rectangle:
pos: self.pos
size: self.size
Splitter:
sizeable_from: "left"
strip_size: "7pt"
Label:
text:"Idk"
canvas.before:
Color:
rgba: (0, 1, 0, 1)
Rectangle:
pos: self.pos
size: self.size
# GridLayout:
# cols: 2
# rows: 1
# GridLayout:
# cols: 1
# spacing: (3, 5)
# Label:
# text:"Idk"
# canvas.before:
# Color:
# rgba: (1, 0, 0, 1)
# Rectangle:
# pos: self.pos
# size: self.size
# Label:
# text:"Idk"
# canvas.before:
# Color:
# rgba: (1, 1, .2, 1)
# Rectangle:
# pos: self.pos
# size: self.size
# Label:
# text:"POGER"
# canvas.before:
# Color:
# rgba: (.2, 1, 1, 1)
# Rectangle:
# pos: self.pos
# size: self.size
# Splitter:
# sizeable_from: "left"
# strip_size: "7pt"
# Label:
# text:"IDK"
# canvas.before:
# Color:
# rgba: (0, 1, 0, 1)
# Rectangle:
# pos: self.pos
# size: self.size
python 文件只是导入然后构建应用程序:
import kivy
from kivy.app import App
from kivy.uix.label import Label
from kivy.uix.gridlayout import GridLayout
from kivy.uix.textinput import TextInput
from kivy.uix.button import Button
from kivy.uix.widget import Widget
from kivy.properties import ObjectProperty
from kivy.graphics import Rectangle, Color
from kivy.uix.boxlayout import BoxLayout
from kivy.uix.pagelayout import PageLayout
from kivy.uix.splitter import Splitter
from kivy.uix.screenmanager import ScreenManager, Screen
【问题讨论】:
标签: user-interface kivy kivy-language