--
You received this message because you are subscribed to the Google Groups "Kivy users support" group.
To unsubscribe from this group and stop receiving emails from it, send an email to kivy-users+...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/kivy-users/0b2793fd-eb53-4a89-94ab-9d1f1935588e%40googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/kivy-users/CAGfUSDJ7PY7jt35T3L2WiC05Jd5Otfz2cNBt5HEOiN7d%2B4c1-A%40mail.gmail.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/kivy-users/CAGb7shS9sZu2OY2c_EcGB96c%3DiEHw3qaSd%3DCnrStuKN0T2VA%3DQ%40mail.gmail.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/kivy-users/CAGfUSDKpOVPi9ptQ%2BqpEZwKqB2f_WRmXgpT_GJ6CFv6_YyLWPQ%40mail.gmail.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/kivy-users/CAGb7shS-PP0YBJfyzkRq0O4fsD%3DacUq6GLyzryazTZQCk2q4gg%40mail.gmail.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/kivy-users/CAGb7shRXd67vQDDgaEhasdaVAdkXuMkjXddRCW3O%3DVW96QXHBw%40mail.gmail.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/kivy-users/CAGfUSDLH1YuPDaD0cVPrgyi3urGHNUL5zJSaGiRK9haVUYoBxA%40mail.gmail.com.
from kivy.app import App
from kivy.lang import Builder
from kivy.uix.boxlayout import BoxLayout
from kivy.properties import ListProperty, NumericProperty
from kivy.clock import Clock
Builder.load_file('main.kv')
class MainView(BoxLayout):
table_data = ListProperty([]) # make table_data a ListProperty
# self.table_data = [] Now a listProperty
# this is done because i supply a dict of dicts and not a list of dicts
for t in list_items:
self.table_data.append(
{
'label_text': self.data[t]['human_name'],
'sw_id': self.data[t]['uid'],
'label2_text': self.data[t]['other_param']
}
)
#self.ids.rv.data = self.table_data Assignment moved to KV
def on_obj_change(self, val):
print(self.table_data[0]['label_text'])
self.table_data[0]['label_text'] = val
print(self.table_data[0]['label_text'])
self.ids.rv.refresh_from_data()
class UpdateRVApp(App):
count = NumericProperty(6) # you already have 5
def build(self):
return MainView()
def add_row(self, dt):
print('row added')
self.root.table_data.append({'label_text': 'human_name' + str(self.count),
'sw_id': 'uid' + str(self.count),
'label2_text': 'Something Else' + str(self.count)})
print(self.root.table_data)
self.count += 1
def on_start(self):
Clock.schedule_interval(self.add_row, 3)
if __name__ == '__main__':
UpdateRVApp().run()
<MainView>
canvas.before:
Color:
rgba: 0.1, 0.5, 0.5, 1
Rectangle:
size: self.size
pos: self.pos
orientation: 'vertical'
RecycleView:
id: rv
scroll_type: ['bars', 'content']
scroll_wheel_distance: dp(100) # scrool step
bar_width: dp(10)
size_hint_y: .7
viewclass: 'Row'
data: root.table_data # assignment moved from py to kv
To unsubscribe from this group and stop receiving emails from it, send an email to kivy-...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/kivy-users/0b2793fd-eb53-4a89-94ab-9d1f1935588e%40googlegroups.com.
--
You received this message because you are subscribed to the Google Groups "Kivy users support" group.
To unsubscribe from this group and stop receiving emails from it, send an email to kivy-...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/kivy-users/CAGfUSDJ7PY7jt35T3L2WiC05Jd5Otfz2cNBt5HEOiN7d%2B4c1-A%40mail.gmail.com.
--
You received this message because you are subscribed to the Google Groups "Kivy users support" group.
To unsubscribe from this group and stop receiving emails from it, send an email to kivy-...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/kivy-users/CAGb7shS9sZu2OY2c_EcGB96c%3DiEHw3qaSd%3DCnrStuKN0T2VA%3DQ%40mail.gmail.com.
--
You received this message because you are subscribed to the Google Groups "Kivy users support" group.
To unsubscribe from this group and stop receiving emails from it, send an email to kivy-...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/kivy-users/CAGfUSDKpOVPi9ptQ%2BqpEZwKqB2f_WRmXgpT_GJ6CFv6_YyLWPQ%40mail.gmail.com.
--
You received this message because you are subscribed to the Google Groups "Kivy users support" group.
To unsubscribe from this group and stop receiving emails from it, send an email to kivy-...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/kivy-users/CAGb7shRXd67vQDDgaEhasdaVAdkXuMkjXddRCW3O%3DVW96QXHBw%40mail.gmail.com.
--
You received this message because you are subscribed to the Google Groups "Kivy users support" group.
To unsubscribe from this group and stop receiving emails from it, send an email to kivy-...@googlegroups.com.
class PatientListWindow(Screen,BoxLayout):
data_items = ListProperty([])
AP = ObjectProperty(None)
def __init__(self, **kwargs):
self.register_event_type('on_tabel_change')
self.data_items=self.get_users()
super(PatientListWindow, self).__init__(**kwargs)
def restore(self):
self.data_items = self.get_users()
def do_something(self, value):
# when do_something is called, the 'on_test' event will be
# dispatched with the value
self.dispatch('on_tabel_change', value)
def on_tabel_change(self,*args):
print ("I am dispatched", args)
def on_custom_callback(*args):
print('my on_custom_event is called with {}'.format(args))
@property
def update_tabel(self):
return '{}'.format( self.data_items )
@update_tabel.setter
def update_tabel(self,val):
self.data_items = val
@property
def update_tabel_data(self):
return '{}'.format(self.ids.patient_tabel.data )
@update_tabel_data.setter
def update_tabel_data(self,val):
self.ids.patient_tabel.data = [{'text': str(x)} for x in val]
def update_user(self):
self.update_tabel=self.get_users()
self.update_tabel_data=self.get_users()
print('New Data',self.data_items)
self.ids.patient_tabel.data= [{'text': str(x)} for x in self.data_items]
print(self.ids.patient_tabel.data)
self.ids.patient_tabel.refresh_from_data()
def get_users(self):
db = DataBase()
rows=db.get_patient_list()
class MyMainApp(App):
def build(self):
return kv
my_app = MyMainApp()
if __name__ == "__main__":
# LS=strt_thread()
# LS.start()
# LS.join()
my_app = MyMainApp()
BoxLayout:
orientation: "vertical"
GridLayout:
height: 25
cols: 7
size_hint: .8, None
pos_hint: {"x":0.3, "y":.6} if root.AP.is_language_english() else{"x":0.1, "y":.6}
height: 25
cols: 1
PatientLabel:
color: 0,0,0,1
canvas.before:
Color:
rgba: .7, .7, .7, 1
Rectangle:
pos: self.pos
size: self.size
text:get_display(arabic_reshaper.reshape('List of Patients')) if root.AP.is_language_english() else get_display(arabic_reshaper.reshape('لیست بیماران')) if root.AP.is_language_persian() else get_display(arabic_reshaper.reshape(' قائمة المرضى '))
font_size:small if root.AP.is_font_small() else medium if root.AP.is_font_medium() else large
GridLayout:
#size_hint: .7, None
size_hint_y: None
#pos_hint: {"x":0.6, "y":0.3}
height: 25
cols: 7
size_hint: .8, None
#size_hint_y: None
#size_hint_x: .5
pos_hint: {"x":0.3, "y":.6} if root.AP.is_language_english() else{"x":0.1, "y":.6}
height: 25
cols: 8
PatientLabel:
text:get_display(arabic_reshaper.reshape('File Number')) if root.AP.is_language_english() else get_display(arabic_reshaper.reshape('شماره پرونده')) if root.AP.is_language_persian() else get_display(arabic_reshaper.reshape(' رقم الملف '))
font_size:small if root.AP.is_font_small() else medium if root.AP.is_font_medium() else large
PatientLabel:
text:get_display(arabic_reshaper.reshape('Name')) if root.AP.is_language_english() else get_display(arabic_reshaper.reshape('نام')) if root.AP.is_language_persian() else get_display(arabic_reshaper.reshape(' اسم '))
font_size:small if root.AP.is_font_small() else medium if root.AP.is_font_medium() else large
PatientLabel:
text:get_display(arabic_reshaper.reshape('Last Name')) if root.AP.is_language_english() else get_display(arabic_reshaper.reshape('نام خانوادگی')) if root.AP.is_language_persian() else get_display(arabic_reshaper.reshape(' الكنية '))
font_size:small if root.AP.is_font_small() else medium if root.AP.is_font_medium() else large
PatientLabel:
text:get_display(arabic_reshaper.reshape("father's name")) if root.AP.is_language_english() else get_display(arabic_reshaper.reshape(' نام پدر ')) if root.AP.is_language_persian() else get_display(arabic_reshaper.reshape(' اسم الاب '))
font_size:small if root.AP.is_font_small() else medium if root.AP.is_font_medium() else large
PatientLabel:
text:get_display(arabic_reshaper.reshape('National Number')) if root.AP.is_language_english() else get_display(arabic_reshaper.reshape('کد ملی')) if root.AP.is_language_persian() else get_display(arabic_reshaper.reshape(' الرقم الوطني '))
font_size:small if root.AP.is_font_small() else medium if root.AP.is_font_medium() else large
PatientLabel:
text:get_display(arabic_reshaper.reshape('Insurance Type')) if root.AP.is_language_english() else get_display(arabic_reshaper.reshape('نوع بیمه')) if root.AP.is_language_persian() else get_display(arabic_reshaper.reshape(' نوع التأمين '))
font_size:small if root.AP.is_font_small() else medium if root.AP.is_font_medium() else large
PatientLabel:
text:get_display(arabic_reshaper.reshape('Insurance Number')) if root.AP.is_language_english() else get_display(arabic_reshaper.reshape('شماره بیمه')) if root.AP.is_language_persian() else get_display(arabic_reshaper.reshape(' رقم التأمين '))
font_size:small if root.AP.is_font_small() else medium if root.AP.is_font_medium() else large
PatientLabel:
text:get_display(arabic_reshaper.reshape('Description')) if root.AP.is_language_english() else get_display(arabic_reshaper.reshape('توضیحات')) if root.AP.is_language_persian() else get_display(arabic_reshaper.reshape(' الوصف'))
font_size:small if root.AP.is_font_small() else medium if root.AP.is_font_medium() else large
BoxLayout:
#size: 300,50
#pos: 0,root.height*.5
pos_hint: {"x":0.3, "y":.6} if root.AP.is_language_english() else{"x":0.1, "y":.6}
size_hint: .8, 0.6
RecycleView:
id:patient_tabel
viewclass: 'SelectableButton'
data: [{'text': str(x)} for x in root.data_items]
#data:[]
SelectableRecycleGridLayout:
cols: 8
default_size: None, dp(26)
default_size_hint: .6, None
size_hint_x: 1
height: self.minimum_height
orientation: 'vertical'
multiselect: True
To unsubscribe from this group and stop receiving emails from it, send an email to kivy-users+...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/kivy-users/6371f85e-d827-4215-8f0a-5df0ccf65f24%40googlegroups.com.
You have a ListProperty data items that is storing a list of strings.
You are using a list comprehension in KV to convert the list of strings into a list of dictionaries.
My suggestion is to create a new ListProperty rv_data_items that maintains the list of dictionaries.
In KV change:
data: [{'text': str(x)} for x in root.data_items]]
To:
data: root.rv_data_items
To view this discussion on the web visit https://groups.google.com/d/msgid/kivy-users/CAGb7shR3kMvEMm1XcETV---HDC-0uuOOJ5EUy4XarwK8n8uW1A%40mail.gmail.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/kivy-users/5e1b265d.1c69fb81.716f7.8becSMTPIN_ADDED_MISSING%40gmr-mx.google.com.
Here is an example, I hope this helps:
from kivy.app import App
from kivy.lang import Builder
from kivy.properties import ListProperty
from kivy.uix.boxlayout import BoxLayout
kv = """
<TestButton@Button>
on_release: print(f'Button: {self.text} pressed')
TestBox:
orientation: 'vertical'
RecycleView:
viewclass: 'TestButton'
data: root.rv_data_list
scroll_type: ['bars','content']
bar_width: dp(20)
do_scroll_x: False
RecycleBoxLayout:
default_size: None, dp(56)
default_size_hint: 1, None
size_hint_y: None
height: self.minimum_height
orientation: 'vertical'
BoxLayout:
size_hint_y: None
height: dp(48)
Button:
text: 'Add pets'
on_release: root.add_pets()
Button:
text: 'Remove pets'
on_release: root.remove_pets()
"""
class TestBox(BoxLayout):
rv_data_list = ListProperty([{'text': 'A' + str(n)} for n in range(4)] +
[{'text': 'B' + str(n)} for n in range(4)])
pets = ['dog', 'cat', 'hamster', 'guinea pig', 'rabbit', 'parrot', 'snake']
def list_to_rv_data(self, str_data):
# convert a list of strings to a list of dictionaries for the rv list
return [{'text': s} for s in str_data]
def rv_data_to_list(self, rv_data):
# convert a list of rv_data to a list of strings
return [list(item.values())[0] for item in rv_data]
def add_pets(self):
self.rv_data_list = self.rv_data_list + self.list_to_rv_data(self.pets)
def remove_pets(self):
entries = self.rv_data_to_list(self.rv_data_list)
no_pets = [d for d in entries if d not in self.pets]
self.rv_data_list = self.list_to_rv_data(no_pets)
class RVTestApp(App):
def build(self):
return Builder.load_string(kv)
RVTestApp().run()
To view this discussion on the web visit https://groups.google.com/d/msgid/kivy-users/CAGb7shSzh_N65A%3D-8Dr62kf9Ddnt-2riEeUsNCs1GCX%3Dj%3D_%2BjA%40mail.gmail.com.
BoxLayout:
scroll_type: ['bars', 'content']
scroll_wheel_distance: dp(100) # scrool step
RecycleView:
id:patient_tabel
viewclass: 'SelectableButton'
data: [{'text': str(x)} for x in root.data_items]
#data: root.data_items
#data:[]
SelectableRecycleGridLayout:
cols: 8
default_size: None, dp(26)
default_size_hint: .6, None
size_hint_x: 1
height: self.minimum_height
orientation: 'vertical'
multiselect: True
touch_multiselect: True
python side
class PatientListWindow(Screen,BoxLayout):
data_items = ListProperty([])
patient_tabel=ObjectProperty(None)
def __init__(self, **kwargs):
self.table_data = []
self.data_items = self.get_users()
self.table_data=[{'text': str(x)} for x in self.data_items]
super(PatientListWindow, self).__init__(**kwargs)and the error isself.ids.patient_tabel.data = []
File "kivy\properties.pyx", line 863, in kivy.properties.ObservableDict.__getattr__
AttributeError: 'super' object has no attribute '__getattr__'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "D:/code/final_designe/persian_fona_design.py", line 1772, in <module>
with open(current_folder_path+"/persian_fona.kv", encoding='utf-8') as f: # Note the name of the .kv
FileNotFoundError: [Errno 2] No such file or directory: 'D:\\code/persian_fona.kv'
To view this discussion on the web visit https://groups.google.com/d/msgid/kivy-users/5e1e0516.1c69fb81.52de8.9124SMTPIN_ADDED_MISSING%40gmr-mx.google.com.
As you know a runnable example would make it easier to help, but here are a few things that could be a problem:
Find the code that is causeing the problem:
self.ids.patient_tabel.data = [] Is this is Python or kv? I’m assuming this is in your Python file, see below:
class PatientListWindow(Screen,BoxLayout):
data_items = ListProperty([])
patient_tabel=ObjectProperty(None)
you are declaring parient_tabel an object property in Python. It appears you want to create an easier to access copy of the id patient_tabel in Recyleview. If that is the case, do something like the following:
class PatientListWindow(Screen,BoxLayout):
data_items = ListProperty([])
# patient_tabel=ObjectProperty(None) Move the creation to KV
BoxLayout:
patient_tabel: patient_tabel
# ^ *** this creates an object property self.patient initiatlized to the id. This should go at the top of <PatientListWindow>
scroll_type: ['bars', 'content']
scroll_wheel_distance: dp(100) # scrool step
RecycleView:
id:patient_tabel
A waring I see ‘patient_tabel’ and ‘data_table’
In the later exception:
open(current_folder_path+"/persian_fona.kv", encoding='utf-8')
use os.path.join to combine paths: https://docs.python.org/3/library/os.path.html#os.path.join
from os.path import join
open(join(current_folder_path, “persian_fona.kv"), encoding='utf-8')
To view this discussion on the web visit https://groups.google.com/d/msgid/kivy-users/CAGb7shR%2BHjUu4rCjx9KbpJ%2BmHmdLeKeyDmrW8JAkWBm9%2BdGR%2BQ%40mail.gmail.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/kivy-users/5e247bed.1c69fb81.e4f64.28bcSMTPIN_ADDED_MISSING%40gmr-mx.google.com.
If you’d like more help, mock up some data and manually put it in the dictionary, and create a smaller example. There is not enough info here for me to provide more help.
To view this discussion on the web visit https://groups.google.com/d/msgid/kivy-users/CAGb7shT9Nbp-QwLi%3DPP%3DQNopPSfHSkJgPk7WOjbSL5rFZB2LPg%40mail.gmail.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/kivy-users/5e253d87.1c69fb81.4c96d.deacSMTPIN_ADDED_MISSING%40gmr-mx.google.com.
self.ids.patient_tabel.data = []
File "kivy\properties.pyx", line 863, in kivy.properties.ObservableDict.__getattr__
AttributeError: 'super' object has no attribute '__getattr__'
That is the error can accrue for all ids not only this case. Could you please tell me how to solve it. if you need i can send you my PatientListWindows to be both on the same page
To view this discussion on the web visit https://groups.google.com/d/msgid/kivy-users/5e247bed.1c69fb81.e4f64.28bcSMTPIN_ADDED_MISSING%40gmr-mx.google.com.
Glad to hear you got that working!
To view this discussion on the web visit https://groups.google.com/d/msgid/kivy-users/CAGb7shSmw3VpV5R_nsqzOVHGewH5SG93rtP%2BugSSwu0xBf9hVQ%40mail.gmail.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/kivy-users/5e26f1cc.1c69fb81.f4bac.3457SMTPIN_ADDED_MISSING%40gmr-mx.google.com.
There are a number of problems here, but the fundamental problem is that you have not defined a viewclass that is capable of displaying your data.
The viewclass is applied to the data in the data list to create a set of widgets that get ‘recycled’.
For your data I created to following simplified viewclass:
<DataRecordButtons@BoxLayout>:
filenumber: 'filenumber' # These are all initial vales that will not be used
name: 'name'
lastname: 'lastname'
fathername: 'fathername'
nationalid: '123'
insurancetype: 'insurancetype'
insurancenumber: 'ins num'
description: 'useful?'
Button:
text: root.filenumber
Button:
text: root.name
Button:
text: root.lastname
Button:
text: root.fathername
Button:
text: root.nationalid
Button:
text: root.nationalid
Button:
text: root.insurancetype
Button:
text: root.insurancenumber
Button:
text: root.description
This creates a horizontal list of buttons that display the text from the data record.
Also for your consideration: I don't know why your are using multiple inheritance on MainView. This is a screen that contains a BoxLayout. It would be more straight forward to move the Boxlayout into the screen, rather than inheriting from it. The MainView 'is a' screen that 'has a' Boxlayout.
--
You received this message because you are subscribed to the Google Groups "Kivy users support" group.
To unsubscribe from this group and stop receiving emails from it, send an email to kivy-users+...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/kivy-users/8ef8b3b7-39a2-4681-abae-992866832398%40googlegroups.com.
#Button:
# text: root.nationalid
self.data_items = self.get_users()
self.table_data=[]
for i in range(int(len(self.data_items)/8)):
temp={'filenumber': str(self.data_items[(i*8)]),
'name': str(self.data_items[(i*8)+1]),
'lastname': str(self.data_items[(i*8)+2]),
'fathername': str(self.data_items[(i*8)+3]),
'nationalid': str(self.data_items[(i*8)+4]),
'insurancetype': str(self.data_items[(i*8)+5]),
'insurancenumber':str(self.data_items[(i*8)+6]),
'description': str(self.data_items[(i*8)+7]) }
self.table_data.append(temp)
temp = {}
#self.table_data=[{'filenumber': '10','name': 'Henry', 'lastname': 'ln12', 'fathername': '12',
# 'nationalid': '123','insurancetype': '123456', 'insurancenumber': '12', 'description': 'None'},
# {'filenumber': '20', 'name': 'Elctrnc', 'lastname': 'Part', 'fathername': 'Dad',
# 'nationalid': 'USA ', 'insurancetype': 'Exp ', 'insurancenumber': '77', 'description': '$$$'}]
self.data_items=[]
self.data_items = self.get_users()
self.table_data=[]
for i in range(int(len(self.data_items)/8)):
temp={'filenumber': str(self.data_items[(i*8)]),
'name': str(self.data_items[(i*8)+1]),
'lastname': str(self.data_items[(i*8)+2]),
'fathername': str(self.data_items[(i*8)+3]),
'nationalid': str(self.data_items[(i*8)+4]),
'insurancetype': str(self.data_items[(i*8)+5]),
'insurancenumber':str(self.data_items[(i*8)+6]),
'description': str(self.data_items[(i*8)+7]) }
self.table_data.append(temp)
Glad you have it working!
To view this discussion on the web visit https://groups.google.com/d/msgid/kivy-users/CAGb7shQTbN2cOSETM9cRhS-ZfJe%3DWzVY6yEsy_Tx1eziSQE5oA%40mail.gmail.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/kivy-users/5e2ee0bb.1c69fb81.671cc.08fdSMTPIN_ADDED_MISSING%40gmr-mx.google.com.
Good news, your recycle view already scrolls.
Try replacing get_users() with:
def get_users(self):
return [str(i) for i in range((800))]
to test it.
To view this discussion on the web visit https://groups.google.com/d/msgid/kivy-users/CAGb7shQ%2BrzQBMa3zQU_K6UUeBBA9HoUObBNjN3QBUUaw15Uw7A%40mail.gmail.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/kivy-users/5e2ee88e.1c69fb81.c82ea.d7fbSMTPIN_ADDED_MISSING%40gmr-mx.google.com.
TestBox(BoxLayout):
rv_data_list = ListProperty([{'text': 'A' + str(n)} <span style="font
font_name:'fonts/DejaVuSans.ttf'
title: str(arabic_reshaper.reshape('Patient Info')) #if root.is_language_english() else str(get_display(arabic_reshaper.reshape('ویرایش کنید')))
Thanks
--
You received this message because you are subscribed to the Google Groups "Kivy users support" group.
To unsubscribe from this group and stop receiving emails from it, send an email to kivy-users+...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/kivy-users/085cace2-d03e-4397-8236-47c294d2d802%40googlegroups.com.
The font for the title in a PopUp is title_font. Then pass in the title text, or hard code it here.
<DataRecordDialog>: # The definition of the popup
size_hint: .7, .7
title_font:'fonts/DejaVuSans.ttf'
BoxLayout:
orientation: 'vertical'
Label:
text: root.name
Label:
text: root.msg
Button:
size_hint_y: None
height: dp(48)
text:'OK'
on_release: root.dismiss()
I imagine you are using the selected font all over your code. You might be able to simplify things by redefining Label to have a different font, this is another way to change the font in the Popup.
<Label>:
-font_name: 'fonts/DejaVuSans.ttf'
This will globally redefine he default font. Buttons, Popups, Labels all get their text properties from Label,
To view this discussion on the web visit https://groups.google.com/d/msgid/kivy-users/CAGb7shRWibbHgOa%2BmfyhtsfzHZPHB7SO4e%3DTYbovhRCoeSkktw%40mail.gmail.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/kivy-users/5e359087.1c69fb81.4fbaf.951dSMTPIN_ADDED_MISSING%40gmr-mx.google.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/kivy-users/CAGb7shQJLc34q_VHTurFMiJL2g%2B-gAm11UzAJpebhJ%3DDRV42-g%40mail.gmail.com.
You can change the image.
You can find the default image located at:
copy the image, bring it into a photo/image editor, change as designed and save.
Then set background: ‘name_of_edited_image.png’
To view this discussion on the web visit https://groups.google.com/d/msgid/kivy-users/CAGb7shQ3eopEDKQwyWMVeZ3NNYcCJdNh7PnefTNMy%2BOxY0SKvA%40mail.gmail.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/kivy-users/5e36ca97.1c69fb81.8f097.b5deSMTPIN_ADDED_MISSING%40gmr-mx.google.com.
bar_width: 10
#bar_color: 1, 0, 0, 1 # red
bar_color: 0, 0, 1, 1 # red
bar_inactive_color: 0, 0, 1, 1 # blue
effect_cls: "ScrollEffect"
scroll_type: ['bars']