私の知る限り、kv言語は静的表示を行うときに便利です。ランタイム中に多くのウィジェットの位置を必要とするゲームを作るときではありません。ここで私は単純なゲームを作ろうとしますが、依然として多くのポジショニングが必要なので、kv言語はウィジェットのコンテキスト外ですが、スクリーン用ではありません。私は、メインメニューとゲーム画面を区別するために画面を使用します。しかし、画像を挿入するために 'add_widget'を使用しようとすると、ウィンドウの中央に常に配置されます。後で私は画面のサイズが100x100であることを知った。kivy画面オブジェクトにウィジェットを動的に追加する
class HomeScreen(Screen):
pass
class GameScreen(Screen):
pass
class ScreenManagement(ScreenManager):
pass
presentation=Builder.load_file('ProjectSD.kv')
class ProjectSDApp(App):
def build(self):
A=presentation
A.screens[0].size=(Window.size)
A.screens[0].add_widget(Label(text='hello',font_Size=80,pos=(0,0)))
return A
if __name__=='__main__':
print(Window.size)
ProjectSDApp().run()
と私のProjectSD.kvファイル:以下
はまだありません運と、私は考えることができる唯一の方法です#: import FadeTransition kivy.uix.screenmanager.FadeTransition
ScreenManagement:
transition: FadeTransition()
HomeScreen:
GameScreen:
<Button>:
font_name:'attackofthecucumbers.ttf'
<HomeScreen>:
name:'home'
canvas:
Rectangle:
pos: self.pos
size: self.size
source: 'nature.jpg'
Label:
text: 'Monopoly GX'
font_name:'KBDunkTank.ttf'
font_size:100
size_hint:0.7,0.2
pos:root.width*0.15,root.height*0.70
Button:
on_release: app.root.current = "game"
text: 'Play Game'
font_size:root.width/20
size_hint:0.3,0.15
pos:root.width*0.35,root.height*0.45
Button:
on_release: app.stop()
text: 'exit'
font_size:root.width/20
size_hint:0.3,0.15
pos:root.width*0.35,root.height*0.20
<GameScreen>:
name:'game'
Button:
on_release: app.root.current = "home"
background_color: (1,0.15,0.2,0.8)
text: 'X'
font_size:root.width/40
size_hint:0.05,0.05
pos:root.width*0.95,root.height*0.95
NO 'POS' メソッドが存在しないため私はウィジェットを(0,0)の位置に手動で配置します。
私が見つけた唯一の方法は、単に以下の通りです: https://kivyspacegame.wordpress.com/2014/08/10/tutorial-flappy-ship-part-2-build-simple-menus-and-animate-your-games-using-clock/
私はkivyのビルドから画面オブジェクトを使用するのであれば、私の質問は、同じ結果を達成するために、どのように、ありますか?だから、後でウィジェットを追加したり削除したりすることはできますか?
と呼ばれる.kvファイルには、あなたが求めているものについて、より具体的には、あなたの質問を編集してもらえますか?既存の画面に画像を追加しようとしていますか?背景(別のウィジェットのキャンバス)ですか?画面マネージャに画面を追加しますか?画面は、画像のようなものを保持できる他のレイアウトを保持するために使用する必要があります。また、より多くのコードを投稿してください、MCVE - http://stackoverflow.com/help/mcve – Daniel
申し訳ありませんが、私がやりたいことは、kivyのビルドで作成された画面が既存の画面に追加されていることです。 Python。私の本当の問題は、画面のサイズが100x100だということです。バックグラウンドではなく、後で移動できるオブジェクトとして – aaron
あなたのkvファイルの内容は何ですか – Daniel