在Kivy中创建控制台
我正在尝试写一个非常基础的Kivy程序,想把屏幕分成三个部分:
- 一个头部(在屏幕的顶部)
- 一个文本区域(在屏幕的中间)
- 一个控制台(在屏幕的底部)
到目前为止,我打算使用一个主网格布局(gridLayout),在里面放三个不同的浮动布局(floatLayout)。
下面是代码的样子:
class Logo(App):
def build(self):
layout = GridLayout(rows=3)
layoutTop = FloatLayout(size=(100,300))
layoutMid = FloatLayout(size=(100,300))
layoutDown = FloatLayout(size=(100,300))
logo = Image(source='imagine.png',size_hint=(.25,.25),pos=(30,380))
blank = Label(text='', font_size = '25sp',pos=(-200,100))
titre = Label(text='#LeCubeMedia',font_size='40sp',pos=(0,280))
ip = Label(text='192.168.42.1',font_size='25sp',pos=(250,280))
layoutTop.add_widget(titre)
layoutTop.add_widget(logo)
layoutTop.add_widget(ip)
layoutMid.add_widget(blank)
layout.add_widget(layoutTop)
layout.add_widget(layoutMid)
return layout
if __name__ == '__main__':
Logo().run()
其实我遇到的问题是关于控制台的创建。我看了很多Kivy文档,但还是在寻找一个好的方法来做这种小部件。
你觉得如果我用Python的print
把东西发送到我的Kivy应用里,然后在需要发送其他内容时刷新一下(把之前的打印内容擦掉),这样会怎么样?这样就像一个控制台。但到现在为止,我还没有太多想法……
有什么建议吗?
2 个回答
2
这段内容是关于使用kivy这个工具进行一些尝试的,代码比较旧,你可能需要稍微调整一下才能在最新的kivy上运行。kivy-designer里也包含了这个功能。这里使用了两种文本输入框,一个用来显示历史记录,另一个用来输入内容。
如果想做一个更好的控制台,推荐使用pyte,这样可以直接在一个小部件的画布上绘制字符。这样就能免费获得VT仿真效果。
2
我在Kivy中见过两种控制台。第一种是一个可以输入多行文本的框,放在一个可以滚动的视图里,你可以把新输入的文字加到旧文字后面。第二种是一个放在滚动视图里的盒子布局或网格布局,每次控制台输出的内容都是一个单独的标签,放在这个布局里。