L Lochana
L Lochana

Reputation: 79

Why does the kivy labels text show out of the label?

I am new to kivy. I want to insert a text into a kivy label at the startup. But the text of the lable shows out of the label as shown below. I can't find a way to fix this. So please give me a solution. enter image description here

This is the code of the kv file.

<SmoothLabel@Label>
    background_color: (0,0,0,0)
    background_normal: ''
    back_color: (255,255,255,1)
    border_radius: [18]
    canvas.before:
        Color:
            rgba: (255,255,255,0.3)
        RoundedRectangle:
            size: 50,50
            pos: 100,10
            radius: self.border_radius

<Money_Manager>

    FloatLayout:
        size_hint_y: None
        height:100
        Image:
            source:'image4.png'
            size: self . texture_size
            allow_stretch: True
            keep_ratio: False

        SmoothLabel:
            d: Total_Wealth
            text: "Total_Wealth"

This is the code of the python file.

from kivy.app import App
from kivy.uix.floatlayout import FloatLayout
from kivy.uix.image import Image
from kivy.lang import Builder
from kivy.uix.boxlayout import BoxLayout

Builder.load_file('total_wealth.kv')

class Money_Manager(App, FloatLayout):
    def build(self): 
        return self

Money_Manager().run()

Upvotes: 0

Views: 119

Answers (2)

John Anderson
John Anderson

Reputation: 39092

In your kv file, you have set the pos and size of the RoundedRectangle to fixed values. You need to set them to the pos and size of the Label. So change this:

<SmoothLabel@Label>
    background_color: (0,0,0,0)
    background_normal: ''
    back_color: (255,255,255,1)
    border_radius: [18]
    canvas.before:
        Color:
            rgba: (255,255,255,0.3)
        RoundedRectangle:
            size: 50,50
            pos: 100,10
            radius: self.border_radius

to:

<SmoothLabel@Label>
    background_color: (0,0,0,0)
    background_normal: ''
    back_color: (255,255,255,1)
    border_radius: [18]
    canvas.before:
        Color:
            rgba: (255,255,255,0.3)
        RoundedRectangle:
            size: self.size
            pos: self.pos
            radius: self.border_radius

Upvotes: 2

Yagav
Yagav

Reputation: 300

Here is my answer for yours

# import kivy module 
import kivy 

# this restricts the kivy version i.e 
# below this kivy version you cannot use the app or software 
kivy.require("1.9.1") 

# base Class of your App inherits from the App class. 
# app:always refers to the instance of your application 
from kivy.app import App 

# if you not import label and use it it through error 
from kivy.uix.label import Label 

# defining the App class 
class MyLabelApp(App): 
    def build(self): 
        # label display the text on screen  
        lbl = Label(text ="Label is Added on screen !!:):)") 
        return lbl 

# creating the object 
label = MyLabelApp() 
# run the window 
label.run()

Output:

enter image description here

Upvotes: 0

Related Questions