如何解决如何在 kivy 中制作画廊?
我想要在 kivy 中的这个画廊 how to make gallery view 如何添加这个 kivy 然后在画廊中显示许多显示和轮播? How to make an image and display it on the next page 任何人都可以帮忙吗?
class gallery(Screen):
pass
.kv
<MyTile@SmartTile>:
size_hint_y: None
height: "240dp"
<gallery>
ScrollView:
MDGridLayout:
cols: 3
row_default_height: (self.width - self.cols*self.spacing[0]) / self.cols
row_force_default: True
adaptive_height: True
padding: dp(4),dp(4)
spacing: dp(4)
MyTile:
source:'*.jpg'
https://i.stack.imgur.com/loupw.png
这里有问题..
[ WARN:1] global C:\Users\runneradmin\AppData\Local\Temp\pip-req-build-vi271kac\opencv\modules\videoio\src\cap_msmf.cpp (376) `anonymous-namespace'::SourceReaderCB::OnReadSample videoio(MSMF): OnReadSample() is called with error status: -1072873821
[ WARN:1] global C:\Users\runneradmin\AppData\Local\Temp\pip-req-build-vi271kac\opencv\modules\videoio\src\cap_msmf.cpp (388) `anonymous-namespace'::SourceReaderCB::OnReadSample videoio(MSMF): async ReadSample() call is Failed with error status: -1072873821
[INFO ] [Loader ] using a thread pool of 2 workers
[ERROR ] [AsyncImage ] Not found <*.jpg>
[INFO ] [Base ] Start application main loop
[ WARN:0] global C:\Users\runneradmin\AppData\Local\Temp\pip-req-build-vi271kac\opencv\modules\videoio\src\cap_msmf.cpp (438) `anonymous-namespace'::SourceReaderCB::~SourceReaderCB terminating async callback
这是图库,但这里没有显示任何图片.. 任何人都可以告诉此代码代码中有什么问题吗?
解决方法
我画了一个画廊的例子,我想这就是你想要的。
from kivymd.app import MDApp
from kivy.metrics import dp
from kivy.lang.builder import Builder
from kivy.uix.boxlayout import BoxLayout
import os
KV = """
<ImageButton@ButtonBehavior+FitImage>
<ImageManager>
path: ""
orientation: "vertical"
size_hint_y: None
height: root.height
padding: dp(10)
ImageButton:
source: root.path
BoxLayout:
RecycleView:
id: rv
key_viewclass: "viewclass"
RecycleGridLayout:
padding: dp(2)
cols: 3
default_size: None,dp(48)
default_size_hint: 1,None
size_hint_y: None
height: self.minimum_height
"""
class ImageManager(BoxLayout):
pass
class GalleryApp(MDApp):
def __init__(self,**kwargs):
super().__init__(**kwargs)
self.manager_list = []
self.dir = os.getcwd()
self.available_image_format = ['.png','.jpg','.jpeg','.bmp'] # etc
def build(self):
return Builder.load_string(KV)
def on_start(self):
self.load_images()
def load_images(self):
if not self.manager_list:
for image in os.listdir(self.dir):
target_filename,target_file_extension = os.path.splitext(image)
if target_file_extension in self.available_image_format:
path_to_image = os.path.join(self.dir,image)
self.manager_list.append(
{
"viewclass": "ImageManager","path": path_to_image,"height": dp(200),}
)
self.root.ids.rv.data = self.manager_list
GalleryApp().run()
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。