0
簡潔にするために、私はコードをポーズする前に問題を説明します。ここに行く:Kivy Screenクラスの中に非常に大きいサイズの/大きいボタン
私は、GridLayout
とImage
の2つのウィジェットを保持するKivyクラスのScreen
クラスを持っています。後者は細かいですが、ボタンが非常に特大のとおりです。
そして、ここでは私のmain.pyだ:私は「
<ScreenManager>:
id: screen_manager
MainScreen:
id: main_screen
name: 'MainScreen'
manager: screen_manager
ReadScreen:
id: read_screen
name: 'ReadScreen'
manager: screen_manager
<MainScreen>:
BackGround:
id: back_ground
source: 'images\\app_background.jpg'
size: root.width, root.height
MainButtons:
cols: 1
pos: root.width/2 - 100, root.height/4
size: 20, 10
Button:
id: button_read
text: "Read"
on_press: root.callback_read()
Button:
id: button_add
text: "Add"
Button:
id: button_manage
text: "Manage"
:
from kivy.app import App
from kivy.uix.widget import Widget
from kivy.uix.button import Button
from kivy.factory import Factory
from kivy.uix.gridlayout import GridLayout
from kivy.uix.image import Image
from kivy.config import Config
from kivy.lang import Builder
from kivy.uix.screenmanager import Screen, ScreenManager
import configparser
Builder.load_file('kv\MainMain.kv')
#read configurations
config = configparser.RawConfigParser()
config.read('config.ini')
#read config values
width = config.getint('Default', 'MAX_WINDOW_WIDTH')
height = config.getint('Default', 'MAX_WINDOW_HEIGHT')
border = config.getint('Default', 'BORDERLESS')
#apply config values
Config.set('graphics','width', width)
Config.set('graphics', 'height', height)
Config.set('graphics', 'borderless', border)
Config.set('input', 'mouse', 'mouse,multitouch_on_demand')
#create screen manager
class ScreenManager(ScreenManager):
pass
#create background widget
class BackGround(Image):
pass
#image buttons
class MainButtons(GridLayout):
pass
#create main screen:
class MainScreen(Screen):
pass
#create main app
class MainMainApp(App):
def build(self):
return MainScreen()
#register class
Factory.register(MainScreen, cls=MainScreen)
#run
if __name__ == '__main__':
MainMainApp().run()
そして、ここでは私のKVファイルです私は本当にこれに夢中になった。ご協力いただきありがとうございます。
私は、これは動作しません怖いです。ボタンはまだ巨大です。クラスがちょうどウィジェットだったときはうまくいったけど、今はスクリーンだから、彼らは巨大になった。 – Chubak
@Chubakそれはここで動作します。この例を試してみてください – EL3PHANTEN
はい、クラスがウィジェットであれば問題ありません。しかし、それは私の問題ではなかった。私はScreenクラスを動作させたい。 – Chubak