Der Kürze halber erkläre ich mein Problem, bevor ich den Code ausspreche. Hier geht es:Extrem übergroße/große Tasten in der Kivy Screen Klasse
Ich habe eine Screen
Klasse in Kivy, die zwei Widgets, eine GridLayout
und eine Image
enthält. Letzteres ist in Ordnung, aber die Tasten sind extrem überdimensionierten:
Und hier ist mein 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()
Und hier ist meine kv-Datei:
<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"
I‘ Ich habe diesen hier wirklich überschwemmt. Danke für Ihre Hilfe.
ich Angst habe, das funktioniert nicht. Die Tasten sind immer noch gigantisch. Es funktionierte gut, als die Klasse nur ein Widget war, aber jetzt, wo es ein Bildschirm ist, wurden sie gigantisch. – Chubak
@Chubak es funktioniert hier. Versuchen Sie, dieses Beispiel auszuführen – EL3PHANTEN
Ja, es funktioniert gut, wenn die Klasse ein Widget ist. Aber das war nicht mein Problem an erster Stelle. Ich möchte, dass die Screen-Klasse funktioniert. – Chubak