我想要一个带有黑色按钮和标签的应用程序,以及带有白色文本的应用程序,因此,希望将这些小部件分隔开来.我想,为了做到这一点,有必要将背景从默认颜色(黑色)转换为白色.实现这一目标的最佳方法是什么?谢谢!
我是Kivy的新手,我正在努力更好地处理事件,以及框架的一些基础知识.
为此,任何人都可以提供在Kivy中实现的简单时钟的代码,它显示当前时间,并每秒更新一次?
在按钮中组合图像/图标和文本的首选方法是什么?例如,如何创建一个按钮text = 'my button',并在该文本的左侧创建一个图形图标?
无论是通过python还是kivy语言,在kivy中设置全局字体大小(即按钮和标签)的首选方法是什么?
根据窗口大小动态更改全局字体大小设置的好方法是什么?
假设您有一个包含3行1列的GridLayout.第一行和最后一行将是标签,中间行将包含图像.
调整图像大小的最佳方法是使其具有固定高度(可能与标签的高度相同或不同),其宽度与布局的宽度相同?是否可以在kivy中执行此操作,或者是否需要引入其他模块(如PIL)并使用图像缓冲区?创建一个以图像为背景的非绑定按钮(因此,让kivy负责调整大小)是否合理,或者这个解决方案有问题吗?谢谢.
我在使用ScollView Widget时遇到一些问题,试图使动态生成的标签堆栈可滚动.我可能误解了ScrollView的使用方式,所以我希望有人可以为我澄清一下.下面的代码从csv读取一堆数据,当显示该代码时,如果有大量数据,程序将基本上尝试将所有文本/标签压缩到GridLayout中.我希望数据可滚动.这是代码的抽象版本:
class showData(Screen):
def __init__(self, **kwargs):
super(showData, self).__init__(**kwargs)
self.my_data = read_csv_to_dict()
self.data_exists = 0 if len(self.my_data) == 0 else 1
### Create Widgets ###
layout_main = BoxLayout(orientation = 'vertical')
layout_back_button = BoxLayout(padding = [0, 0, 0, 20])
self.layout_data = GridLayout(cols = 3 if self.data_exists else 1)
self.scrollview_data = ScrollView()
button_back = Button(text = 'Main menu')
### Add widgets ###
self.add_widget(layout_main)
layout_main.add_widget(layout_back_button)
layout_main.add_widget(self.scrollview_data)
layout_back_button.add_widget(button_back)
if self.data_exists:
self.layout_data.add_widget(Label(text = 'label 1'))
self.layout_data.add_widget(Label(text = 'label 2'))
self.layout_data.add_widget(Label(text = 'label 3'))
self.display_data(self)
self.scrollview_data.add_widget(self.layout_data) …Run Code Online (Sandbox Code Playgroud) 假设您有如下设置:
ScrollView:
size_hint: (1, 0.5)
Label:
size_hint: (1, None)
Run Code Online (Sandbox Code Playgroud)
最初,Label没有内容/文本.如果我理解正确,在创建对象时,Label的高度为None.
运行应用程序时,Label的text属性设置为多行文本,这应该将Label的内容推送到ScrollView的边界之外.但是,对于滚动发生,似乎必须动态调整Label的y维度/高度.
根据Label的新内容动态调整Label高度的最佳方法是什么,以便可以进行滚动操作?