0
간결하게하기 위해 코드 포즈를하기 전에 문제를 설명하겠습니다. 여기에 간다 :Kivy Screen 클래스의 매우 큰 버튼/큰 버튼
나는 과 Image
이라는 두 개의 위젯을 가지고있는 Kivy에서 Screen
클래스를 가지고있다. 후자는 괜찮지 만, 버튼은 매우 대형 있습니다
을 그리고 여기 내 main.py입니다 :
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 파일이다 : 나는 '
<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"
가 정말이 하나에 빠져 들었어. 당신의 도움을 주셔서 감사합니다.
나는이 작동하지 않습니다 두려워 해요. 버튼은 여전히 거대합니다. 클래스가 위젯 일 때도 잘 동작했지만 화면이 되었기 때문에 거대하게되었습니다. – Chubak
@Chubak 그것이 여기에서 작동합니다. 이 예제를 실행 해보십시오. – EL3PHANTEN
예, 클래스가 위젯 인 경우 제대로 작동합니다. 하지만 그것은 처음에는 내 문제가 아니 었습니다. Screen 클래스가 작동되기를 원합니다. – Chubak