相关疑难解决方法(0)

在Kivy中使用和移动小部件/按钮

我刚开始和Kivy一起开始,这与我以前的习惯有所不同,如果我犯了愚蠢的错误,我道歉!

现在我正在尝试创建一个执行以下操作的应用程序:

  • 允许创建节点(目前为省略号).
  • 允许用户通过拖动来定位节点.
  • 允许用户使用一条线连接节点.

到目前为止,我已经实现了第一次,第二次.

现在我的拖动效果不太好.如果我移动鼠标太快,它会取消移动方法(因为它不再接触).有没有更好的方法来产生拖动或者我只是提高刷新率(如果是这样的话?).

def on_touch_move(self, touch):
   if self.collide_point(touch.x, touch.y):
       self.pos=[touch.x-25, touch.y-25]
Run Code Online (Sandbox Code Playgroud)

我尝试使用Buttons,使用on_press方法更好地跟踪移动.但是现在我很难更新按钮的位置(主要是语法).

    class GraphNode(Button):
       background_disabled_down=1
       background_disabled_normal=1

       def moveNode(self):
           with touch:
               self.pos=[touch.x-25, touch.y-25]
Run Code Online (Sandbox Code Playgroud)

我不知道如何使用触摸值,并不断收到一系列错误.(显然目前的尝试不起作用,我只是觉得这很有趣).

你可能会说,我也不知道如何摆脱按钮图形,因为我想使用椭圆.如果有人可以告诉我如何在按钮上更改椭圆的颜色,这将是一个额外的好处,这将是很酷的!

kv文件:

    <GraphNode>:
        size: 50, 50
        canvas:
            Ellipse:
                pos: self.pos
               size: self.size
        on_press:
            root.moveNode()
Run Code Online (Sandbox Code Playgroud)

我希望能够使用触摸信息更新位置,但不知道如何在此处实现.

完整的核心python代码:

    from kivy.app import App
    from kivy.uix.widget import Widget
    from kivy.uix.button import Button
    from kivy.properties import NumericProperty, ReferenceListProperty,\
        ObjectProperty
    from kivy.graphics import Color, Ellipse, Line


    class GraphInterface(Widget):
        node = ObjectProperty(None)



    class GraphApp(App):

        def build(self):
            node = GraphNode()
            game …
Run Code Online (Sandbox Code Playgroud)

python drawing python-2.7 kivy

2
推荐指数
1
解决办法
4900
查看次数

标签 统计

drawing ×1

kivy ×1

python ×1

python-2.7 ×1