में किसी ऑब्जेक्ट को केंद्रित करना मैं लेआउट के अंदर एक मंडल को केंद्र में रखने की कोशिश कर रहा हूं। मैं वर्तमान में कुछ पैडिंग गणना कर रहा हूं, लेकिन मैं भी एक बेहतर तरीका ढूंढ रहा हूं, और कल्पना करें कि पूर्वनिर्धारित लेआउट में से एक बेहतर विकल्प हो सकता है।किवी
विस्तृत लेआउट के लिए::
तो, यह सही व्यवहार है, जो महान है यहाँ मेरे कोड का निर्माण कर रहा है ...
वर्ग लेआउट के लिए है । लेकिन क्या कोई बेहतर तरीका है? (मैं इस गैर वृत्त आकार के साथ गंदा हो रही है, उदाहरण के लिए कल्पना कर सकते हैं।)
यहाँ मेरी कोड है:
#!/usr/bin/kivy
import kivy
kivy.require('1.7.2')
from random import random
from kivy.app import App
from kivy.uix.widget import Widget
from kivy.uix.gridlayout import GridLayout
from kivy.uix.anchorlayout import AnchorLayout
from kivy.uix.relativelayout import RelativeLayout
from kivy.graphics import Color, Ellipse, Rectangle
class MinimalApp(App):
title = 'My App'
def build(self):
root = RootLayout()
return(root)
class RootLayout(AnchorLayout):
pass
class Circley(RelativeLayout):
pass
if __name__ == '__main__':
MinimalApp().run()
और केवी:
#:kivy 1.7.2
#:import kivy kivy
<RootLayout>:
anchor_x: 'center' # I think this /is/ centered
anchor_y: 'center'
canvas.before:
Color:
rgba: 0.4, 0.4, 0.4, 1
Rectangle:
pos: self.pos
size: self.size
Circley:
anchor_x: 'center' # this is /not/ centered.
anchor_y: 'center'
canvas.before:
Color:
rgba: 0.94, 0.94, 0.94, 1
Ellipse:
size: min(self.size), min(self.size)
pos: 0.5*self.size[0] - 0.5*min(self.size), 0.5*self.size[1] - 0.5*min(self.size)
Label:
text: unicode(self.size) # this is /not/ appearing
color: 1,0,0,1