Python 3.x Kivy工具栏出现故障
我正在尝试使用kivymd构建一个窗口,其中包含若干“卡片”,其中包含某些信息和一些功能按钮。我试图做的是将卡片添加到网格布局,并在浮动布局中挂起该网格,但我在查看所附图像时遇到了一些问题。另外,请建议是否可以采用更好的方法。 这是窗口的代码。我将在稍后制作一些功能,以便在按下一些按钮时添加更多的卡Python 3.x Kivy工具栏出现故障,python-3.x,kivy,kivy-language,kivymd,Python 3.x,Kivy,Kivy Language,Kivymd,我正在尝试使用kivymd构建一个窗口,其中包含若干“卡片”,其中包含某些信息和一些功能按钮。我试图做的是将卡片添加到网格布局,并在浮动布局中挂起该网格,但我在查看所附图像时遇到了一些问题。另外,请建议是否可以采用更好的方法。 这是窗口的代码。我将在稍后制作一些功能,以便在按下一些按钮时添加更多的卡 <ProjectCard@MDGridLayout> md_bg_color: 0, 1, 1, 1 cols: 1 MDToolbar: rig
<ProjectCard@MDGridLayout>
md_bg_color: 0, 1, 1, 1
cols: 1
MDToolbar:
right_action_items: [["dots-vertical", lambda x: print(x)]]
title: "Title"
size_hint_y:0.3
MDLabel:
size_hint_y:0.1
valign:"bottom"
text:"mm:hh dd:mm:yy AM"
MDLabel:
size_hint_y:0.3
multiline: True
text:"john wick, richie rich, courage, garelt"
valign:"top"
adaptive_height: True
GridLayout:
rows:1
cols:2
size_hint_y:0.3
MDLabel:
text:"Status: " + "working"
MDIconButton:
icon:"details"
adaptive_height: True
<ProjectsPage>
FloatLayout
MDGridLayout:
pos_hint: {'center_x':0.5}
size_hint_x:0.95
spacing:[10, 10]
cols:1
ProjectCard:
size_hint_y:0.3
ProjectCard:
size_hint_y:0.3
ProjectCard:
size_hint_y:0.3
md_背景_颜色:0,1,1,1
科尔斯:1
MDToolbar:
右行动项目:[[“垂直点”,λx:print(x)]]
标题:“标题”
尺寸:0.3
MDLabel:
尺寸:0.1
valign:“底部”
正文:“mm:hh dd:mm:yy AM”
MDLabel:
尺寸:0.3
多行:正确
文字:“约翰·威克、里奇·里奇、勇气、加雷特”
valign:“顶部”
自适应高度:真
网格布局:
行数:1
科尔斯:2
尺寸:0.3
MDLabel:
文本:“状态:”+“正在工作”
MDIconButton:
图标:“详细信息”
自适应高度:真
浮动布局
MDGridLayout:
位置提示:{'center_x':0.5}
尺寸:0.95
间距:[10,10]
科尔斯:1
项目卡:
尺寸:0.3
项目卡:
尺寸:0.3
项目卡:
尺寸:0.3
kivy window的图像
我认为您希望添加带有按钮的新卡,并且希望轻松查看所有卡。因此,您可以在页面上使用ScrollView。您还可以根据需要设置此页面的网格列。我将此选项设置为2。我在.py文件中创建了这些卡片。你也可以用千伏。我希望这些代码能帮助您理解如何通过操作轻松创建新卡。 main.py:
#main.py:
from kivy.uix.screenmanager import Screen,ScreenManager
from kivymd.uix.boxlayout import MDBoxLayout
from kivymd.app import MDApp
from kivy.properties import ObjectProperty
class ProjectsPage(Screen):
cards_grid = ObjectProperty()
def add_card(self):
card = Card()
self.cards_grid.add_widget(card)
class Card(MDBoxLayout):
pass
class SM(ScreenManager):
pass
class my(MDApp):
def build(self):
self.theme_cls.theme_style = "Dark"
return SM()
if __name__ == '__main__':
my().run()
<SM>:
ProjectsPage:
<ProjectCard@MDGridLayout>
size_hint_y:None
height: '250sp'
md_bg_color: 0, 1, 1, .5
cols: 1
<ProjectsPage>:
cards_grid:cards_grid
BoxLayout:
padding: '25sp','25sp','25sp','25sp'
orientation: 'vertical'
ScrollView:
size_hint_y:.9
do_scroll_x:False
do_scroll_y:True
GridLayout:
id: cards_grid
spacing: '25sp'
size_hint_y:None
height: self.minimum_height
cols: 2
Card:
Card:
Button:
size_hint_y:.1
text: 'Add New Card'
on_release: root.add_card()
<Card>:
orientation: 'vertical'
size_hint_y:None
height: '250sp'
md_bg_color: 0, 1, 1, .5
MDToolbar:
right_action_items: [["dots-vertical", lambda x: print(x)]]
title: "Title"
size_hint_y:0.3
MDLabel:
size_hint_y:0.1
valign:"bottom"
text:"mm:hh dd:mm:yy AM"
MDLabel:
size_hint_y:0.3
multiline: True
text:"john wick, richie rich, courage, garelt"
valign:"top"
adaptive_height: True
GridLayout:
rows:1
cols:2
size_hint_y:0.3
MDLabel:
text:"Status: " + "working"
MDIconButton:
icon:"details"
adaptive_height: True
my.kv:
#main.py:
from kivy.uix.screenmanager import Screen,ScreenManager
from kivymd.uix.boxlayout import MDBoxLayout
from kivymd.app import MDApp
from kivy.properties import ObjectProperty
class ProjectsPage(Screen):
cards_grid = ObjectProperty()
def add_card(self):
card = Card()
self.cards_grid.add_widget(card)
class Card(MDBoxLayout):
pass
class SM(ScreenManager):
pass
class my(MDApp):
def build(self):
self.theme_cls.theme_style = "Dark"
return SM()
if __name__ == '__main__':
my().run()
<SM>:
ProjectsPage:
<ProjectCard@MDGridLayout>
size_hint_y:None
height: '250sp'
md_bg_color: 0, 1, 1, .5
cols: 1
<ProjectsPage>:
cards_grid:cards_grid
BoxLayout:
padding: '25sp','25sp','25sp','25sp'
orientation: 'vertical'
ScrollView:
size_hint_y:.9
do_scroll_x:False
do_scroll_y:True
GridLayout:
id: cards_grid
spacing: '25sp'
size_hint_y:None
height: self.minimum_height
cols: 2
Card:
Card:
Button:
size_hint_y:.1
text: 'Add New Card'
on_release: root.add_card()
<Card>:
orientation: 'vertical'
size_hint_y:None
height: '250sp'
md_bg_color: 0, 1, 1, .5
MDToolbar:
right_action_items: [["dots-vertical", lambda x: print(x)]]
title: "Title"
size_hint_y:0.3
MDLabel:
size_hint_y:0.1
valign:"bottom"
text:"mm:hh dd:mm:yy AM"
MDLabel:
size_hint_y:0.3
multiline: True
text:"john wick, richie rich, courage, garelt"
valign:"top"
adaptive_height: True
GridLayout:
rows:1
cols:2
size_hint_y:0.3
MDLabel:
text:"Status: " + "working"
MDIconButton:
icon:"details"
adaptive_height: True
:
项目页面:
尺寸提示:无
高度:'250标度'
md_bg_颜色:0,1,1,5
科尔斯:1
:
卡片网格:卡片网格
盒子布局:
填充:“25sp”、“25sp”、“25sp”、“25sp”
方向:“垂直”
滚动视图:
大小提示:9
是否滚动\u x:False
是否滚动y:正确
网格布局:
id:cards\u grid
间距:“25sp”
尺寸提示:无
高度:自身最小高度
科尔斯:2
卡片:
卡片:
按钮:
大小\u提示\u y:.1
文本:“添加新卡”
发布时:root.add\u card()
:
方向:“垂直”
尺寸提示:无
高度:'250标度'
md_bg_颜色:0,1,1,5
MDToolbar:
右行动项目:[[“垂直点”,λx:print(x)]]
标题:“标题”
尺寸:0.3
MDLabel:
尺寸:0.1
valign:“底部”
正文:“mm:hh dd:mm:yy AM”
MDLabel:
尺寸:0.3
多行:正确
文字:“约翰·威克、里奇·里奇、勇气、加雷特”
valign:“顶部”
自适应高度:真
网格布局:
行数:1
科尔斯:2
尺寸:0.3
MDLabel:
文本:“状态:”+“正在工作”
MDIconButton:
图标:“详细信息”
自适应高度:真
非常感谢,我在项目页面中添加了一个滚动视图。做了一些调整,现在是完美的。我的选票不算,但我告诉你这很有帮助