我正在试着用Toga Canvas来代替我的Beeware app.根据Toga docs,Canvasandroid https://toga.readthedocs.io/en/latest/reference/api/widgets/canvas.html上应该是完全正常的, 为了判断它,我使用下面附加的简单脚本,当按下draw按钮时,应该绘制red rectangle.该脚本在windows下运行得很好,但在android下,按下按钮就不会有任何react .我在Beeware emulator和我的Galaxy 23上都试了试,结果是一样的.任何关于如何使其发挥作用的建议或提示都将不胜感激.

import toga
from toga.style import Pack
from toga.style.pack import COLUMN, ROW

class HelloWorld(toga.App):
    def startup(self):
        global canvas
        main_box = toga.Box(style=Pack(direction=COLUMN))

        test_button = toga.Button("draw",on_press=draw_rect,style=Pack(padding=5))
        canvas = toga.Canvas(style=Pack(flex=1))
        main_box.add(canvas)
        main_box.add(test_button)

        self.main_window = toga.MainWindow(title=self.formal_name)
        self.main_window.content = main_box
        self.main_window.show()

def draw_rect(widget):
    with canvas.fill(color="red") as Rect:
        Rect.rect(x=50,y=50,width=25,height=15)

def main():
    return HelloWorld()

推荐答案

最新的Readthedocs页面是针对开发版本的,该版本尚未发布.要查看最新发布版本的文档,请将"最新"更改为"稳定".

要使用对画布进行了许多改进的开发版本,请编辑您的pyproject t.toml文件,将toga-android替换为以下内容:

    "git+https://github.com/beeware/toga#subdirectory=core",
    "git+https://github.com/beeware/toga#subdirectory=android",

Python相关问答推荐

Ibis中是否有一个ANY或ANY_UTE表达,可以让我比较子查询返回的一组值中的值?

"如果发生特定错误,返回值

symy.分段使用numpy数组

Python -Polars库中的滚动索引?

GL pygame无法让缓冲区与vertextPointer和colorPointer一起可靠地工作

如何根据参数推断对象的返回类型?

运行Python脚本时,用作命令行参数的SON文本

为什么带有dropna=False的groupby会阻止后续的MultiIndex.dropna()工作?

优化pytorch函数以消除for循环

如何在Python中并行化以下搜索?

Python虚拟环境的轻量级使用

使用setuptools pyproject.toml和自定义目录树构建PyPi包

如何让这个星型模式在Python中只使用一个for循环?

如何从数据库上传数据到html?

Pandas—在数据透视表中占总数的百分比

Asyncio:如何从子进程中读取stdout?

如何指定列数据类型

Python Tkinter为特定样式调整所有ttkbootstrap或ttk Button填充的大小,适用于所有主题

为什么常规操作不以其就地对应操作为基础?

重置PD帧中的值