I have this code that populates my Carousel with images from the path:
class EzLaunchScreen(Screen):
def __init__(self, **kwargs):
super().__init__(**kwargs)
img_path = ('D:\\Steven\Desktop\\Python App\\Images\\Carousel\\')
# Funtion get images int carousel...
layout = FloatLayout()
self.background_image = Image(source='Images\launchScreen.png')
carousel_widget = Carousel(direction ='right')
for img_file in os.listdir(img_path):
if img_file.endswith(('.png', '.jpg', '.jpeg')):
img = Image(source=os.path.join(img_path, img_file))
print(f"Adding image: {img_file}")
carousel_widget.add_widget(img)
layout.add_widget(self.background_image)
layout.add_widget(carousel_widget)
self.add_widget(layout)
And in string snippet I have the following
Code = '''
<EzLaunchScreen>:
brand_text: Brand_label
val_text: ToT_label
slide_text: slider_label
name: 'EzLaunch'
BoxLayout:
Button:
background_color: 0, 0, 0, 0
size_hint: .25, .070
on_press: app.swipe_me()
pos_hint: {'center_x': 0.10, 'center_y': .975}
# This is the carousel library of brands...
Carousel:
id: carousel_widget
direction: 'right'
on_slide: root.swipe_me()
'''
I want a function that gives me the image name when I swipe the carousel... This is what I've tried but does not work:
def swipe_me(self, carousel_widget_instance, value):
current_image = carousel_widget_instance.slides[carousel_widget_instance.index]
image_name = current_image.image_name # Access the stored name
print(f"Current image name: {image_name}")
Cross posted HERE
Starship
1,3224 gold badges18 silver badges34 bronze badges
-
this solves... carousel_widget.bind(_index=self.swipe_me) def swipe_me(self, instance, value): current_image = instance.slides[int(value)] image_name = current_image.source.split('\\')[-1] image_name = image_name.split('.')[0] self.brand_text.text = image_name.upper() print(f"Image Name: {image_name.upper()}")Steven Gerber– Steven Gerber2025年03月07日 09:49:36 +00:00Commented Mar 7, 2025 at 9:49
-
1Welcome to SO. Please post the solution as an answer below, not as an edit to the question.desertnaut– desertnaut2025年03月10日 14:46:38 +00:00Commented Mar 10, 2025 at 14:46
1 Answer 1
According to the OP, this solved the problem:
carousel_widget.bind(_index=self.swipe_me)
def swipe_me(self, instance, value):
current_image = instance.slides[int(value)]
image_name = current_image.source.split('\\')[-1]
image_name = image_name.split('.')[0]
self.brand_text.text = image_name.upper()
print(f"Image Name: {image_name.upper()}")
Sign up to request clarification or add additional context in comments.
Comments
Explore related questions
See similar questions with these tags.
lang-py