我想制作具有類似可滑動Buttons(或其他用途的填充小部件)的Kivy 移動應用程式。除此之外,我想從相同的Button. 例如 Gmail 移動應用程式使用此功能:

我有這個代碼:
主檔案
from kivy.app import App
from kivy.uix.boxlayout import BoxLayout
from kivy.uix.button import Button
class ItemList(BoxLayout):
def __init__(self, **kwargs):
super().__init__(**kwargs)
self.orientation = "vertical"
self.item_list = []
for i in range(10):
self.item_list.append(Button(text=str(i),
on_release=lambda x, this_item=i: print(this_item)))
self.add_widget(self.item_list[-1])
class MainApp(App):
pass
MainApp().run()
主檔案
ItemList:
我希望程式能夠理解串列上的女巫按鈕被按下,按下“輸入”滑動或單/雙/長按(三個中的任何一個都可以)并執行相應的方法。
我正在為此尋找預先構建的包,但我可能使用了錯誤的關鍵字,因為我在串列方法中找不到任何適合這種型別的按鈕/小部件。
uj5u.com熱心網友回復:
以下解釋或建議基于您對Kivy.
正如我直到現在所了解的,在kivy您看來,您可能無法期待一些現成的組件。但這不是缺點,實際上是讓開發人員選擇、實作自己的一種非常有效的方式。有很多方法可以對 a 進行編程CustomWidget,例如 a Button。您可以更改外觀、觸摸反饋、紋理等。
我希望程式能夠理解串列上的女巫按鈕被按下,按下“輸入”滑動或單/雙/長按(三個中的任何一個都可以)并執行相應的方法。
要獲得您自己的觸摸行為(行為),除了默認的 mixin 之外ButtonBehavior,您還可以使用三個觸摸事件on_touch_down、on_touch_move和來實作所需的邏輯on_touch_up。要啟用長按/按住行為,一種方法可以是在on_touch_down事件中安排一個具有時間閾值的動作,超過該閾值該動作將通過同一事件觸發。再次獲得滑動行為,您可以on_touch_move根據需要在事件和其他人的事件中實作邏輯。您還可以限制觸摸事件通過檢查進一步傳播collide_point,collide_widget等等。
您可以Button使用它的ids 或通過它傳遞一些引數來跟蹤/識別任何。
我正在為此尋找預先構建的軟體包,但我可能正在使用......
是的有一些。KivyMD是基于Kivy近似于 Google 的 Material Design開發的這些專案之一。
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/402223.html
