2017-05-08 5 views
0
from kivy.app import App 
from kivy.graphics import Color, Rectangle 
from kivy.uix.button import Button 
from kivy.uix.gridlayout import GridLayout 
from kivy.uix.label import Label 
from kivy.uix.screenmanager import ScreenManager, Screen, FadeTransition 


#from kivy.config import Config 
#Config.set('graphics','fullscreen','auto') 

sm = ScreenManager(transition=FadeTransition()) 

class myGridLayout(GridLayout): 
    pass 

class secondScreen(GridLayout, Screen): 
    def __init__(self, **kwargs): 
     super(secondScreen, self).__init__(**kwargs) 

     self.cols=1 
     self.add_widget(Label(text='Second Screen')) 
     self.btn1 = Button(text='Home') 
     self.add_widget(self.btn1) 
     self.btn1.bind(on_release=self.page1Func) 


    def page1Func(self, *args): 
     self.manager.current = 'page1' 

class HomeScreen(GridLayout, Screen): 
    def __init__(self, **kwargs): 
     super(HomeScreen, self).__init__(**kwargs) 

     with self.canvas: 
      Color(rgba=[1,0,0,1]) 
      Rectangle(pos=self.pos, size=self.size) 


     self.cols=1 
     self.add_widget(Label(text='[color=ec6135]Carloman Systems[/color]',font_size=50, markup=True)) 

     self.layout_name=myGridLayout(spacing=50,padding=[50 , 0 , 50 , -50]) 

     self.add_widget(self.layout_name) 



     self.layout_name.cols=3 

     self.btn1=Button(background_normal='./image-dark.png', 
         background_down='./image.png') 
     self.layout_name.add_widget(self.btn1) 
     self.btn1.bind(on_release = self.page2Func) 

     self.btn2=Button(background_normal='./image.png', 
         background_down='./image-dark.png') 
     self.layout_name.add_widget(self.btn2) 

     self.btn3=Button(background_normal='./image.png', 
         background_down='./image-dark.png') 
     self.layout_name.add_widget(self.btn3) 

     self.names_panel=myGridLayout() 
     self.add_widget(self.names_panel) 
     self.names_panel.cols=3 

     self.names_panel.add_widget(Label(text='btn1', font_size=30)) 
     self.names_panel.add_widget(Label(text='btn2', font_size=30)) 
     self.names_panel.add_widget(Label(text='btn3', font_size=30)) 


    def page2Func(self, *args): 
     self.manager.current = 'page2' 
     #self.popup = Popup(title='Test popup', content=Label(text='Hello world'), auto_dismiss=False) 


sm.add_widget(HomeScreen(name='page1')) 
sm.add_widget(secondScreen(name='page2')) 
sm.current='page1' 

class MainScreen(App): 
    def build(self): 
     return sm 

if __name__=='__main__': 
    MainScreen().run() 

Ich verwende diesen Code für meine GUI. und ich verwende diesen Code für die Hintergrundfarbe.So legen Sie Hintergrundfarbe in Kivy fest

Rectangle(pos=self.pos, size=self.size) 

aber es zeigt ein kleines Rechteck in der unteren linken Ecke. Es ist nicht im Vollbildmodus. ich bin neu in kivy. hilf mir bitte Jungs, bitte. Ich möchte das Rechteck, das den gesamten Bildschirm abdeckt.

Antwort

1

Sie benötigen pos und Größe binden so dass jede Änderung

... #inside __init__ 
def draw_background(widget, prop): 
    with widget.canvas: 
     Color(rgba=[1,0,0,1]) 
     Rectangle(pos=self.pos, size=self.size) 
self.bind(size=draw_background) 
self.bind(pos=draw_background) 
... 
+0

Sie tatsächlich die Leinwand Zeichnung ändert sich wirklich nicht. Es hängt vollständig davon ab, was Sie versuchen zu tun. Wenn Sie mit absolut festen Größen arbeiten, können Sie die Größe mit etwas anderem als self.size einstellen, sonst wird Yoav bei jeder Änderung der Fenstergröße darauf hingewiesen, dass sie nicht richtig skaliert wird. – Afflicted

Verwandte Themen