【发布时间】:2019-10-03 10:15:43
【问题描述】:
我没有太多的编程经验,只是从 Kivy 开始。我无法在 Kivy 文档和 youtube 中找到组合所有内容的方式,在这种情况下,让我的小部件移动。特别是结合了 kv 和 python 以及不同的布局。
现在,如果我按下左键,我设法打印出“工作中”。 相反,我想让我的小部件(汽车图像)自动向前移动并使用 2 个按钮左右旋转汽车应该转弯。
期待看到一些建议。我也希望有很多 Kivy 经验的人有一些关于如何处理 kivy 文档和一般 kivy 的提示。
这是我的 Python 代码:
import kivy
kivy.require('1.11.1')
from kivy.app import App
from kivy.uix.label import Label # add some text
from kivy.uix.stacklayout import StackLayout
from kivy.uix.gridlayout import GridLayout #
from kivy.uix.textinput import TextInput #for textinput ;)
from kivy.uix.boxlayout import BoxLayout
from kivy.uix.pagelayout import PageLayout
from kivy.uix.floatlayout import FloatLayout
from kivy.core.window import Window
from kivy.uix.widget import Widget
from kivy.uix.image import Image, AsyncImage
from kivy.uix.screenmanager import ScreenManager, Screen, FadeTransition
from kivy.uix.button import Button
from kivy.uix.behaviors import ButtonBehavior
from kivy.graphics import Rectangle, Color
from kivy.uix.anchorlayout import AnchorLayout
from kivy.uix.scatterlayout import ScatterLayout
from kivy.config import Config
from kivy.core.window import Window
from kivy.properties import ObjectProperty, NumericProperty, ReferenceListProperty, ListProperty
from kivy.vector import Vector
from kivy.clock import Clock
from kivy.lang import Builder
import os
Window.size = (450, 750)
print(dir(Widget))
class myGame(FloatLayout):
def leftButton(self, *args):
btnLeft = self.ids['btnLeft']
Car.moveCar(self)
def rightButton(self, *args):
btnRight = self.ids['btnLeft']
print('right button')
class Car(Widget):
def moveCar(self):
car = self.ids['car']
print('working')
class myApp(App): #name your .kv file 'my.kv'
def build(self): # initialization method, like __init__
game = myGame()
return game
if __name__ == '__main__':
myApp().run()
这是我的 kv 代码:
#:kivy 1.11.1
#<Button>:
#size_hint: 0.5, 0.27
<FloatLayout>:
Button:
id: btnLeft
pos_hint: {'x': 0, 'bottom': 1}
size_hint: 0.5, 0.27
on_press: root.leftButton()
Image:
source: 'images/arrow_left.png'
allow_stretch: True
keep_ratio: False
center_x: self.parent.center_x
center_y: self.parent.center_y
size: root.width * 0.5, root.height * 0.27
Button:
id: btnRight
pos_hint: {'x': 0.5, 'bottom': 1}
size_hint: 0.5, 0.27
on_press: root.rightButton()
Image:
source: 'images/arrow_right.png'
allow_stretch: True
keep_ratio: False
center_x: self.parent.center_x
center_y: self.parent.center_y
size: root.width * 0.5, root.height * 0.27
Car: # the Car
id: car
canvas:
Rectangle:
source: 'images/car_blue_5.png'
size: root.width * 0.15, root.height * 0.15
pos: root.width * 0.425, root.height * 0.44
【问题讨论】:
标签: python-3.x layout widget kivy kivy-language