You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Kivy Python窗口中显示数组而非控制台打印?

实现数组在窗口显示的方案

你需要在ThirdWindow的界面布局中添加文本显示控件,将数组内容格式化为字符串后赋值给控件,替代控制台打印逻辑。

步骤1:添加窗口显示控件

如果用Kivy的kv语言定义界面,给ThirdWindow添加带ID的文本控件(推荐用Label,配合格式控制实现对齐):

<ThirdWindow>:
    ScrollView:
        Label:
            id: array_display
            text_size: self.width, None
            halign: 'left'
            valign: 'top'
            size_hint_y: None
            height: self.texture_size[1]
            padding: 10, 10

如果直接在Python类中创建控件,可在__init__方法中初始化:

class ThirdWindow(Screen):
    def __init__(self, **kwargs):
        super().__init__(**kwargs)
        self.array_display = Label(
            text_size=(self.width, None),
            halign='left',
            valign='top',
            size_hint_y=None,
            padding=(10,10)
        )
        scroll_view = ScrollView(size_hint=(1,1))
        scroll_view.add_widget(self.array_display)
        self.add_widget(scroll_view)

步骤2:修改display方法,格式化数组并赋值

把原控制台打印的逻辑改成字符串拼接,再传递给显示控件:

class ThirdWindow(Screen):
    # 先添加上面的控件初始化代码...

    def display(self):
        order = int(ord.abc)
        n = int(inc.abc)
        arr = funarr.abc
        
        display_text = ""
        for i in range(order):
            row_content = ""
            for j in range(order):
                row_content += '%4d ' % (arr[i][j] * n)
            display_text += row_content + '\n'
        
        # 将格式化后的文本赋值给窗口控件
        self.array_display.text = display_text

额外说明

  • 原代码中i=int(funi.abc)和j=int(funj.abc)未被使用(循环内重新定义了同名变量),可直接删除以避免混淆。
  • 用ScrollView包裹控件是为了应对大数组,确保内容可滚动查看。

内容的提问来源于stack exchange,提问作者Arina

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 10:01:19