何らかの理由でスクリーンクラスを作成してウィジェットを追加すると、ウィジェットクラスを作成して追加するときと比べて何らかの理由でオリジナルよりも10倍大きいイメージが得られますスクリーンクラスの子としてのウィジェットクラス。ここではKVファイルの私のコードです: Kivy Screenクラスのバグ
<StartScreen>
# Start Screen
name:'Start'
orientation: 'vertical'
FloatLayout:
id: Start_Layout
Image:
id: Start_Background
source: r'Images\Battle.jpg'
keep_ratio: True
allow_stretch: True
size: root.size
<MainScreen>
name: 'Main'
orientation: 'vertical'
FloatLayout:
Image:
source: r'Images\Button.png'
allow_stretch: True
keep_ratio: False
size: 100, 100
とPythonのGUIファイルの
...from kivy.uix.widget import Widget
from kivy.uix.image import Image
from kivy.uix.boxlayout import BoxLayout
from kivy.uix.gridlayout import GridLayout
from kivy.uix.button import Button
from kivy.uix.label import Label
from kivy.animation import Animation
from kivy.uix.screenmanager import ScreenManager, Screen
from kivy.clock import Clock
from kivy.graphics.context_instructions import Color
from kivy.graphics.vertex_instructions import *
from kivy.core.window import Window
from kivy.app import App
from kivy.lang import Builder
import kivy
kivy.require('1.9.1')
VERSION = '1.9.1'
class GenericButton(Widget):
Builder.load_file('Button.kv')
def __init__(self, **kwargs):
super(GenericButton, self).__init__(**kwargs)
self.Button = self.ids['Button']
self.size = Window.size
def on_touch_down(self, touch):
self.Button.source = r'Images\ButtonPressed.png'
def on_touch_up(self, touch):
self.Button.source = r'Images\Button.png'
class wid(Widget):
def __init__(self, **kwargs):
super(wid, self).__init__(**kwargs)
self.Button =画像(ソース= 'イメージ\ Animatio \ glow.gif' が、 allow_stretch = Falseの、keep_ratio =真)(新しいそのインデントCUSイムをふり、それは私が self.add_widget(self.Button)
class StartScreen(Screen):
def __init__(self, **kwargs):
super(StartScreen, self).__init__(**kwargs)
#self.Layout = self.ids['Start_Layout']
#self.size = Window.size
#self.Layout.add_widget(GenericButton())
#self.ids['Start_Button'] = self.Layout.children[0]
print self.ids
#print self.ids.Start_Button.size
print self.size[0]/2, self.size[1]/2
class MainScreen(Screen):
def __init__(self, **kwargs):
super(MainScreen, self).__init__(**kwargs)
self.size = Window.size
def on_touch_down(self, touch):
self.Button.source = r'Images\ButtonPressed.png'
def on_touch_up(self, touch):
self.Button.source = r'Images\Button.png'
class ScreenManager(ScreenManager):
def __init__(self, **kwargs):
super(MCGMScreenManager, self).__init__(**kwargs)
Builder.load_file('Gui.kv')
self.add_widget(StartScreen())
self.add_widget(MainScreen())
)コードブロックに追加することはできないだろうとアプリの中で実行されますメインファイル投稿する必要はありません。しかし、重要なことは、アプリケーションルートクラスがScreenManagerであることです。
編集:私はちょっと混乱してしまいましたが、これはPythonで行いましたが、GenericButtonの子をクリアしてGenericButtonが子として所有していたボタンを追加しましたStartScreenと同じ結果、巨大な無反応の画像。
ありがとう、私はレイアウトではなく、単一のウィジェットで作業していたことを忘れていました。画像。私はサイズのヒントをnoneに設定し、うまくいきました。もう一度、ありがとう! –