kivy обновление списка
помогите мне обновлять список в приложение при нажатии кнопки.Буду благодарен за любую помощь.
from kivy.lang import Builder
from kivy.properties import ObjectProperty
from kivy.uix.scrollview import ScrollView
#from kivy.uix.image import Image
from kivy.uix.boxlayout import BoxLayout
from kivymd.app import MDApp
from kivymd.uix.list import OneLineListItem
from kivymd.uix.card import MDCardSwipe
from kivy.properties import StringProperty
from kivymd.uix.dialog import MDInputDialog, MDDialog
text_scrolls = ["привет, и чё ?","псс, лайк поставь!"]
KV = '''
<SwipeToDeleteItem>:
anchor: "right"
size_hint_y: None
height: content.height
type_swipe: "auto"
on_swipe_complete: app.on_swipe_complete(root)
MDCardSwipeLayerBox:
MDCardSwipeFrontBox:
OneLineListItem:
id: content
text: root.text
_no_ripple_effect: True
<ContentNavigationDrawer>:
BoxLayout:
orientation: "vertical"
NavigationLayout:
ScreenManager:
id: screen_manager
Screen:
name: "screen 1"
Screen:
ScrollView:
MDList:
id: scroll
MDFloatingActionButton:
icon: "android"
md_bg_color: app.theme_cls.primary_color
pos_hint: {"center_x": .5, "center_y": .5}
user_font_size: "64sp"
on_press:
app.show_MDDialog()
MDNavigationDrawer:
id: nav_drawer
ContentNavigationDrawer:
id: content
screen_manager: screen_manager
nav_drawer: nav_drawer
'''
class SwipeToDeleteItem(MDCardSwipe):
text = StringProperty()
class TestNavigationDrawer(MDApp):
def __init__(self, **kwargs):
super().__init__(**kwargs)
self.screen = Builder.load_string(KV)
def build(self):
return self.screen
def on_start(self):
instance_content = self.root.ids.content
for text_scroll in text_scrolls:
self.screen.ids.scroll.add_widget(
SwipeToDeleteItem(text=text_scroll)
)
print(text_scrolls)
def show_MDDialog(self):
text_scrolls.append(333)
print(text_scrolls)
class ContentNavigationDrawer(ScrollView):
screen_manager = ObjectProperty()
nav_drawer = ObjectProperty()
TestNavigationDrawer().run()
Ответы (1 шт):
Я думаю, что вам нужно иметь возможность редактировать два поля, а затем, когда вы нажимаете кнопку, вы должны иметь возможность редактировать каждое поле (текстовые поля) и после нажатия кнопки вы хотите распечатать что вы вводите в поля, хорошо, для этого сначала удалите строку:
from kivymd.uix.dialog import MDInputDialog, MDDialog
Потому что это вызовет ошибку. Я изменил это на: from kivymd.uix.dialog import MDDialog
Теперь я понимаю, что вы делаете, как поете на экране, хорошо сделайте следующее:
from kivy.lang import Builder
from kivy.properties import ObjectProperty
from kivy.uix.scrollview import ScrollView
from kivy.uix.boxlayout import BoxLayout
from kivymd.app import MDApp
from kivymd.uix.list import OneLineListItem
from kivymd.uix.card import MDCardSwipe
from kivy.properties import StringProperty
from kivymd.uix.dialog import MDDialog
notification=1 #1 is yes, 0 is NO
text_scrolls = ["привет, и чё ?","псс, лайк поставь!","https://www.facebook.com/josue.carranza.56884761","https://www.facebook.com/josue.carranza.56884761","https://www.facebook.com/josue.carranza.56884761","https://www.facebook.com/josue.carranza.56884761","https://www.facebook.com/josue.carranza.56884761","https://www.facebook.com/josue.carranza.56884761","https://www.facebook.com/josue.carranza.56884761","https://www.facebook.com/josue.carranza.56884761","https://www.facebook.com/josue.carranza.56884761","https://www.facebook.com/josue.carranza.56884761","https://www.facebook.com/josue.carranza.56884761","https://www.facebook.com/josue.carranza.56884761","https://www.facebook.com/josue.carranza.56884761","https://www.facebook.com/josue.carranza.56884761","https://www.facebook.com/josue.carranza.56884761","https://www.facebook.com/josue.carranza.56884761","https://www.facebook.com/josue.carranza.56884761","https://www.facebook.com/josue.carranza.56884761","https://www.facebook.com/josue.carranza.56884761","https://www.facebook.com/josue.carranza.56884761","https://www.facebook.com/josue.carranza.56884761","https://www.facebook.com/josue.carranza.56884761","https://www.facebook.com/josue.carranza.56884761","https://www.facebook.com/josue.carranza.56884761","https://www.facebook.com/josue.carranza.56884761","https://www.facebook.com/josue.carranza.56884761","https://www.facebook.com/josue.carranza.56884761","https://www.facebook.com/josue.carranza.56884761","https://www.facebook.com/josue.carranza.56884761","https://www.facebook.com/josue.carranza.56884761","https://www.facebook.com/josue.carranza.56884761","https://www.facebook.com/josue.carranza.56884761","https://www.facebook.com/josue.carranza.56884761"]
text_scrolls1 = ["привет, и чё ?","псс, лайк поставь!"]
KV = '''
<SwipeToDeleteItem>:
anchor: "right"
size_hint_y: None
height: content.height
type_swipe: "auto"
on_swipe_complete: app.on_swipe_complete(root)
MDCardSwipeLayerBox:
MDCardSwipeFrontBox:
OneLineListItem:
id: content
text: root.text
_no_ripple_effect: True
<ContentNavigationDrawer>:
BoxLayout:
orientation: "vertical"
NavigationLayout:
ScreenManager:
id: screen_manager
Screen:
name: "screen 1"
Screen:
ScrollView:
MDList:
id: scroll
MDFloatingActionButton:
icon: "android"
md_bg_color: app.theme_cls.primary_color
pos_hint: {"center_x": .9, "center_y": .1}
#user_font_size: "64sp"
on_press:
app.show_MDDialog()
MDNavigationDrawer:
id: nav_drawer
ContentNavigationDrawer:
id: content
screen_manager: screen_manager
nav_drawer: nav_drawer
'''
class SwipeToDeleteItem(MDCardSwipe):
text = StringProperty()
class TestNavigationDrawer(MDApp):
def __init__(self, **kwargs):
super().__init__(**kwargs)
self.screen = Builder.load_string(KV)
self.a = 1
def build(self):
global app
app=MDApp.get_running_app()
return self.screen
def on_start(self):
instance_content = self.root.ids.content
for text_scroll in text_scrolls:
self.screen.ids.scroll.add_widget(
SwipeToDeleteItem(text=text_scroll)
)
print(text_scrolls)
def show_MDDialog(self):
text_scrolls1.append(333)
if notification==1:
app.notti(title="Result:",text=str(text_scrolls1))
self.a=self.a+1
self.screen.ids.scroll.add_widget(SwipeToDeleteItem(text=str(self.a)+str(" https://www.facebook.com/josue.carranza.56884761")))
def notti(self,title="",text=""):
self.dialog=MDDialog(
title=title,
text=text,
radius=[21,21,21,21],
)
self.dialog.open()
class ContentNavigationDrawer(ScrollView):
screen_manager = ObjectProperty()
nav_drawer = ObjectProperty()
TestNavigationDrawer().run()
Используя этот код, вы можете добавлять еще один элемент каждый раз, когда нажимаете его, Кстати, если вы хотите узнать больше, вы можете отправить мне сообщения в мой мессенджер facebook https://www.facebook.com/josue.carranza.56884761
или вы можете проверить и подписаться на мой канал на YouTube https://youtu.be/QByzOUVRMyc