提问人:Parrin_ 提问时间:11/13/2023 最后编辑:Parrin_ 更新时间:11/13/2023 访问量:19
在 kivymd 中使用 for 循环创建的文本看起来很杂乱
Text created using for loops in kivymd looks cluttered
问:
我一直在做一个小型编码项目,这是一个适用于 Android 的应用程序。我在我的 python 文件中使用 for 循环创建了一个名为“Contraindicaciones”的屏幕,因为我必须制作大量的复选框。
在此屏幕中,有 10 个复选框,每个复选框都有自己的标签,位于 2 列 GridLayout 上。
问题是,当我将屏幕大小调整为类似于手机时,标签(标题和复选框标签)看起来非常混乱,这真的很糟糕,因为该应用程序将在智能手机中使用。
如果您帮助我使屏幕看起来更整洁,特别是对于智能手机屏幕,那将有很大帮助。
我尝试过增加间距和减小标签的大小,以及font_size属性,但它没有用,实际上增加间距使它看起来更糟(顶部的按钮看起来很奇怪)并减小标签的大小,font_size根本没有效果(这很奇怪)
class Contraindicaciones(MDScreen):
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
# Scrollview
self.scrollview_contraindicaciones = MDScrollView(size_hint=(1, None), size = (Window.width, Window.height))
# GridLayout
layout_contraindicaciones = MDGridLayout(orientation = "lr-tb", spacing = "100dp", padding = "20dp", size_hint_x = 1, size_hint_y = None, cols = 2)
layout_contraindicaciones.bind(minimum_height = layout_contraindicaciones.setter("height"))
# Go Back Button:
invisible_label1 = MDLabel(text = "")
invisible_label1.size_hint_y = None
invisible_label1.size_hint_x = 0.5
invisible_label1.height = dp(50)
back_button_layout = MDBoxLayout(orientation = "vertical")
back_button = MDFillRoundFlatButton(text = "Anterior", font_name = "fonts/Lato-Bolditalic.ttf")
back_button.haling = "left"
back_button.size_hint_y = None
back_button.size_hint_x = 0.8
back_button.bind(on_release = self.back)
back_button_layout.add_widget(back_button)
layout_contraindicaciones.add_widget(back_button_layout)
layout_contraindicaciones.add_widget(invisible_label1)
#title
title_label = MDLabel(text = "Contraindicaciones", halign="left")
title_label.font_size = "15dp"
title_label.size_hint_y = None
title_label.size_hint_x = 1
title_label.font_name = "fonts/Lato-Bolditalic.ttf"
title_label.height = dp(50)
# Invisible Label
invisible_label2 = MDLabel(text = "")
invisible_label2.size_hint_y = None
invisible_label2.size_hint_x = 0.1
invisible_label2.height = dp(50)
# Title and Invisible Label to not mess the rest up
layout_contraindicaciones.add_widget(title_label)
layout_contraindicaciones.add_widget(invisible_label2)
self.checkboxes = []
contraindicaciones = ["Hemorragia intracraneal (HIC) previa", "Lesión vascular cerebral estructural conocida",
"Neoplasia intracraneal maligna conocida ya sea primaria o metastásica", "Accidente cerebrovascular isquémico en un plazo de 3 meses",
"Sospecha de disección aórtica", "Hemorragia activa o diátesis hemorrágica", "Traumatismo craneoencefálico cerrado importante o traumatismo facial en los últimos 3 meses",
"Cirugía intracraneal o intramedular en un plazo de 3 meses", "Hipertensión no controlada grave", "En caso de estreptoquinasa, el tratamiento previo debe ser dentro de los 6 meses previos"]
for i, contraindicacion in enumerate(contraindicaciones):
size_checkbox = dp(32)
size_labels = dp(12)
checkbox = MDCheckbox(size_hint=(0.5, None), size=(size_checkbox, size_checkbox))
label = MDLabel(text=contraindicacion, size_hint=(0.8, None), size=(size_labels, size_labels), font_size = "10dp", multiline = True)
label.font_name = "fonts/Lato-Italic.ttf"
layout_contraindicaciones.add_widget(label)
layout_contraindicaciones.add_widget(checkbox)
self.checkboxes.append(checkbox)
# Button and invisible label
invisible_label3 = MDLabel(text = "")
invisible_label3.size_hint_y = None
invisible_label3.size_hint_x = 0.5
invisible_label3.height = dp(50)
next_button = MDFillRoundFlatButton(text = "Continuar", font_name = "fonts/Lato-Bolditalic.ttf")
next_button.haling = "right"
next_button.size_hint_y = None
next_button.size_hint_x = 0.5
next_button.bind(on_release = self.forward)
layout_contraindicaciones.add_widget(invisible_label3)
layout_contraindicaciones.add_widget(next_button)
#Se agrega Grid a Scroll
self.scrollview_contraindicaciones.add_widget(layout_contraindicaciones)
self.add_widget(self.scrollview_contraindicaciones)
def back(self,*_):
self.manager.transition.direction = "right"
self.manager.current = "c_t"
def forward(self,*_):
if any(checkbox.active for checkbox in self.checkboxes):
self.manager.transition.direction = "left"
self.manager.current = "contra_n"
else:
self.manager.transition.direction = "left"
self.manager.current = "t_y"
答: 暂无答案
评论