繁体   English   中英

绘图小部件 class 添加到现有代码时不会绘制 Kivy Python

Drawing widget class won't draw when added to existing code Kivy Python

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文繁体   英文版本   中英对照 版本,有任何建议请联系yoyou2525@163.com。

MyGridLayout(Widget) 中的所有内容都可以正常工作。 DrawingWidget 的绘图框出现,但没有画线。 如果我将 DrawingWidget 放在它自己的单独程序中,它可以让我画得很好。 class 的放置是否有问题? 我已经尝试了 KV 文档的许多安排,并且只能让绘图框出现在 MyGridLayout 中的所有其他小部件下方,这些小部件 function 很好。

class MyGridLayout(Widget):
    def __init__(self, **kwargs):
        super(MyGridLayout, self).__init__(**kwargs)
        pass
class DrawingWidget(Widget):
        def __init__(self, **kwargs):
            super(DrawingWidget, self).__init__(**kwargs)

            with self.canvas:
                Color(1, 1, 1, 1)
                self.rect = Rectangle(size=self.size,
                                    pos=self.pos)
            self.bind(pos=self.update_rectangle,
                    size=self.update_rectangle)

        def update_rectangle(self, instance, value):
            self.rect.pos = self.pos
            self.rect.size = self.size

        def on_touch_down(self, touch):
            super(DrawingWidget, self).on_touch_down(touch)

            if not self.collide_point(*touch.pos):
                return

            with self.canvas:
                Color(0, 0, 0, 1)
                self.line = Line(points=[touch.pos[0], touch.pos[1]], width=2)

        def on_touch_move(self, touch):
            if not self.collide_point(*touch.pos):
                return

            self.line.points = self.line.points + [touch.pos[0], touch.pos[1]]              
                    

class funcswspinnerall(App):
    def build(self):
        return MyGridLayout()


if __name__ == '__main__':
    funcswspinnerall().run()

这是一个缩写的KV文件


<MyGridLayout>:
    ScrollView:
        size: root.width, root.height
        GridLayout:
            cols:1
            padding:9,9,9,9
          
            GridLayout:
                cols:3
                size_hint_y:.5
                Label:
                Button:
                    text:'Enter Activity'
                    on_press:root.sendmatt()
                    size_hint_x:3
                    size_hint_y:1
                Label:
            GridLayout:
                cols:1
                DrawingWidget:
                    
<DrawingWidget>:
    BoxLayout:
        orientation: 'horizontal'
        size_hint_y: None
        height: 50
1 个回复

问题是您在ScrollView中有DrawingWidget ScrollView想要使用鼠标触摸进行滚动,因此会干扰您的绘图。 修复方法是将DrawingWidget移出ScrollView或添加:

scroll_type: ['bars']

ScrollView ,这将您的滚动限制为使用滚动条。

1 如何在 Python Kivy 中的每个小部件中画线

我正在尝试在标签上显示二叉树。 如何在每个 label 内从中心到左右边缘画线? 这个任务很奇怪,我理解,但是你我需要用最基本的 Kivy 对象显示一个自写的树。 不能使用 Kivy 树。 互联网上的所有解决方案都只针对触摸屏。 在此循环中,我添加带有节点值的标签,如果找不到节点,则为 0 在这里, ...

3 Kivy 添加小部件不会出现在屏幕上:

我遇到了以下问题: 当我运行以下代码时 - 这似乎有效: 但是当我尝试这个时,我通过调试模式看到它进入了 Board(),但它没有在屏幕上显示任何内容: 我知道这不是完整的代码,但也许您可以解释 TestApp().run() 是如何工作的,以及为什么 Board() 从 TestApp.buil ...

4 Python Kivy 在现有图像中绘制椭圆

我对 kivy 很陌生,我不知道在一个班级中使用多个功能。 该应用程序必须显示一张我可以在其上绘制椭圆的图片。 它已经显示了图像,但我根本无法绘制。 这是我的代码: ...

5 Kivy:绘制到小部件

我收集了 kivy 的经验,但在使用小部件中心时遇到了问题。 我的问题显示了下一个脚本: 我想在不使用按钮画家的情况下在小部件中心(黑色矩形)绘制圆圈。 我无法获得中心的实际中心坐标。 不使用按钮仅可用默认中心坐标。 OK过程如何? 谢谢你的回答。 ...

2020-03-27 12:54:03 2 93   kivy
6 Kivy在小部件上绘制

我是Kivy的新手,在完成教程之后,我的下一步是在一个应用程序中添加两个教程的小部件。 CombWidget类将是我的Widget,Paint和PingPong Widget将添加到其中。 作为中间步骤,添加了BoxLayout并 一些按钮 MyPaintWidget ...

7 上课时,不会画出我的新舞台[重复]

这个问题已经在这里有了答案: 什么是NullPointerException,我该如何解决? 12个答案 我一直在为自己的游戏添加自己的自定义字体时遇到麻烦,并且想知道为什么libgdx不喜欢在我的班级被调用后绘制新的舞台? 每当一个项目与另一个项目相交时, ...

8 Kivy:在 python 代码中设置小部件禁用属性

我在 kivy lang 文件中有这样的东西(伪代码) 关键是,ok_btn 需要根据其他几个小部件的 state 动态启用和禁用。 这一切都按预期工作,但现在我遇到了问题。 由于复杂的原因,我需要创建按钮并将其插入到 python 的根小部件中,而不是在 .kv 文件或字符串中定义它。 我不知道如 ...

9 重新初始化其父类时,SFML对象将不会绘制

我正在开发一个新项目并实现一个基本的场景变化。 我将不同的场景设置为它们自己的类,使用初始化函数来创建和重新定位不同的SFML对象。 我看到了这个答案 ,同样也写了我的场景切换器: ... 您可以在github存储库中看到完整代码。 但是,这似乎不能正常工作 - 只要进 ...

2018-01-15 16:57:48 1 163   c++/ sfml
10 Kivy-在做出用户选择之前不要绘制小部件

我有一个清单字典。 在我的应用程序中,用户将从微调器中选择一个选项,该选项将更新微调器中的文本和绑定的StringProperty ,该StringProperty用作字典的键。 我然后使用RecycleView显示和RecycleGridLayout显示列表。 我想以微调框文字作为“ ...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2022 STACKOOM.COM