Kivy和KivyMD可以在一个项目中一起使用吗?



Kivy和KivyMD可以一起使用,因为我需要两者的功能来为我的项目工作…例如,我可以有一个按钮和MDButton一起在kv代码?

您可以同时使用,因为kivy是主要框架,kivyMD是用kivy基设计的,它们都注册和访问工厂名称,所以您可以轻松地在kivy Lang部分中使用它们,甚至不需要导入模块,jbsidis:

Kivy Factory:
r('Animation', module='kivy.animation')
r('AnimationTransition', module='kivy.animation')
r('ExceptionHandler', module='kivy.base')
r('Cache', module='kivy.cache')
r('ClockBase', module='kivy.clock')
r('ColorPicker', module='kivy.uix.colorpicker')
r('ColorWheel', module='kivy.uix.colorpicker')
r('ConfigParser', module='kivy.config')
r('EventDispatcher', module='kivy.event')
r('Observable', module='kivy.event')
r('FactoryException', module='kivy.factory')
r('Gesture', module='kivy.gesture')
r('GestureDatabase', module='kivy.gesture')
r('GesturePoint', module='kivy.gesture')
r('GestureStroke', module='kivy.gesture')
r('Parser', module='kivy.lang.parser')
r('LoaderBase', module='kivy.loader')
r('ProxyImage', module='kivy.loader')
r('LoggerHistory', module='kivy.logger')
r('NumericProperty', module='kivy.properties')
r('StringProperty', module='kivy.properties')
r('ListProperty', module='kivy.properties')
r('ObjectProperty', module='kivy.properties')
r('BooleanProperty', module='kivy.properties')
r('BoundedNumericProperty', module='kivy.properties')
r('OptionProperty', module='kivy.properties')
r('ReferenceListProperty', module='kivy.properties')
r('AliasProperty', module='kivy.properties')
r('NumericProperty', module='kivy.properties')
r('DictProperty', module='kivy.properties')
r('VariableListProperty', module='kivy.properties')
r('ConfigParserProperty', module='kivy.properties')
r('ColorProperty', module='kivy.properties')
r('Property', module='kivy.properties')
r('SafeList', module='kivy.utils')
r('Vector', module='kivy.vector')
r('Color', module='kivy.graphics.context_instructions')
r('BindTexture', module='kivy.graphics.context_instructions')
r('PushMatrix', module='kivy.graphics.context_instructions')
r('PopMatrix', module='kivy.graphics.context_instructions')
r('Rotate', module='kivy.graphics.context_instructions')
r('Scale', module='kivy.graphics.context_instructions')
r('Translate', module='kivy.graphics.context_instructions')
r('MatrixInstruction', module='kivy.graphics.context_instructions')
r('Fbo', module='kivy.graphics.fbo')
r('Instruction', module='kivy.graphics.instructions')
r('InstructionGroup', module='kivy.graphics.instructions')
r('ContextInstruction', module='kivy.graphics.instructions')
r('VertexInstruction', module='kivy.graphics.instructions')
r('Canvas', module='kivy.graphics.instructions')
r('CanvasBase', module='kivy.graphics.instructions')
r('Callback', module='kivy.graphics.instructions')
r('RenderContext', module='kivy.graphics.instructions')
r('Shader', module='kivy.graphics.shader')
r('Texture', module='kivy.graphics.texture')
r('TextureRegion', module='kivy.graphics.texture')
r('Matrix', module='kivy.graphics.transformation')
r('VBO', module='kivy.graphics.vbo')
r('VertexBatch', module='kivy.graphics.vbo')
r('StencilPush', module='kivy.graphics.stencil_instructions')
r('StencilPop', module='kivy.graphics.stencil_instructions')
r('StencilUse', module='kivy.graphics.stencil_instructions')
r('StencilUnUse', module='kivy.graphics.stencil_instructions')
r('ScissorPush', module='kivy.graphics.scissor_instructions')
r('ScissorPop', module='kivy.graphics.scissor_instructions')
r('Triangle', module='kivy.graphics.vertex_instructions')
r('Quad', module='kivy.graphics.vertex_instructions')
r('Rectangle', module='kivy.graphics.vertex_instructions')
r('RoundedRectangle', module='kivy.graphics.vertex_instructions')
r('BorderImage', module='kivy.graphics.vertex_instructions')
r('Ellipse', module='kivy.graphics.vertex_instructions')
r('Line', module='kivy.graphics.vertex_instructions')
r('SmoothLine', module='kivy.graphics.vertex_instructions')
r('Point', module='kivy.graphics.vertex_instructions')
r('Bezier', module='kivy.graphics.vertex_instructions')
r('Mesh', module='kivy.graphics.vertex_instructions')
r('Svg', module='kivy.graphics.svg')
r('MotionEventFactory', module='kivy.input.factory')
r('MotionEventProvider', module='kivy.input.provider')
r('Shape', module='kivy.input.shape')
r('ShapeRect', module='kivy.input.shape')
r('ActionBar', module='kivy.uix.actionbar')
r('ActionItem', module='kivy.uix.actionbar')
r('ActionButton', module='kivy.uix.actionbar')
r('ActionToggleButton', module='kivy.uix.actionbar')
r('ActionCheck', module='kivy.uix.actionbar')
r('ActionSeparator', module='kivy.uix.actionbar')
r('ActionDropDown', module='kivy.uix.actionbar')
r('ActionGroup', module='kivy.uix.actionbar')
r('ActionOverflow', module='kivy.uix.actionbar')
r('ActionView', module='kivy.uix.actionbar')
r('ContextualActionView', module='kivy.uix.actionbar')
r('AnchorLayout', module='kivy.uix.anchorlayout')
r('BoxLayout', module='kivy.uix.boxlayout')
r('GridLayout', module='kivy.uix.gridlayout')
r('PageLayout', module='kivy.uix.pagelayout')
r('Accordion', module='kivy.uix.accordion')
r('AccordionItem', module='kivy.uix.accordion')
r('Button', module='kivy.uix.button')
r('ButtonBehavior', module='kivy.uix.behaviors.button')
r('ToggleButtonBehavior', module='kivy.uix.behaviors.togglebutton')
r('DragBehavior', module='kivy.uix.behaviors.drag')
r('FocusBehavior', module='kivy.uix.behaviors.focus')
r('CompoundSelectionBehavior', module='kivy.uix.behaviors.compoundselection')
r('KNSpaceBehavior', module='kivy.uix.behaviors.knspace')
r('CodeNavigationBehavior', module='kivy.uix.behaviors.codenavigation')
r('EmacsBehavior', module='kivy.uix.behaviors.emacs')
r('CoverBehavior', module='kivy.uix.behaviors.cover')
r('Bubble', module='kivy.uix.bubble')
r('BubbleButton', module='kivy.uix.bubble')
r('Camera', module='kivy.uix.camera')
r('Carousel', module='kivy.uix.carousel')
r('CodeInput', module='kivy.uix.codeinput')
r('CheckBox', module='kivy.uix.checkbox')
r('DropDown', module='kivy.uix.dropdown')
r('EffectWidget', module='kivy.uix.effectwidget')
r('FloatLayout', module='kivy.uix.floatlayout')
r('RelativeLayout', module='kivy.uix.relativelayout')
r('ScatterLayout', module='kivy.uix.scatterlayout')
r('ScatterPlaneLayout', module='kivy.uix.scatterlayout')
r('FileChooserListView', module='kivy.uix.filechooser')
r('FileChooserIconView', module='kivy.uix.filechooser')
r('FileChooser', module='kivy.uix.filechooser')
r('Image', module='kivy.uix.image')
r('AsyncImage', module='kivy.uix.image')
r('Label', module='kivy.uix.label')
r('Layout', module='kivy.uix.layout')
r('ModalView', module='kivy.uix.modalview')
r('ProgressBar', module='kivy.uix.progressbar')
r('Popup', module='kivy.uix.popup')
r('Scatter', module='kivy.uix.scatter')
r('ScatterPlane', module='kivy.uix.scatter')
r('ScrollView', module='kivy.uix.scrollview')
r('Settings', module='kivy.uix.settings')
r('Slider', module='kivy.uix.slider')
r('Screen', module='kivy.uix.screenmanager')
r('ScreenManager', module='kivy.uix.screenmanager')
r('Spinner', module='kivy.uix.spinner')
r('Splitter', module='kivy.uix.splitter')
r('StackLayout', module='kivy.uix.stacklayout')
r('StencilView', module='kivy.uix.stencilview')
r('Switch', module='kivy.uix.switch')
r('TabbedPanel', module='kivy.uix.tabbedpanel')
r('TabbedPanelHeader', module='kivy.uix.tabbedpanel')
r('TextInput', module='kivy.uix.textinput')
r('ToggleButton', module='kivy.uix.togglebutton')
r('TreeView', module='kivy.uix.treeview')
r('TreeViewLabel', module='kivy.uix.treeview')
r('TreeViewNode', module='kivy.uix.treeview')
r('ShaderTransition', module='kivy.uix.screenmanager')
r('SlideTransition', module='kivy.uix.screenmanager')
r('SwapTransition', module='kivy.uix.screenmanager')
r('WipeTransition', module='kivy.uix.screenmanager')
r('FadeTransition', module='kivy.uix.screenmanager')
r('Sandbox', module='kivy.uix.sandbox')
r('Video', module='kivy.uix.video')
r('VideoPlayer', module='kivy.uix.videoplayer')
r('VideoPlayerVolume', module='kivy.uix.videoplayer')
r('VideoPlayerStop', module='kivy.uix.videoplayer')
r('VideoPlayerPlayPause', module='kivy.uix.videoplayer')
r('VideoPlayerProgressBar', module='kivy.uix.videoplayer')
r('VKeyboard', module='kivy.uix.vkeyboard')
r('Widget', module='kivy.uix.widget')
r('WidgetException', module='kivy.uix.widget')
r('RstDocument', module='kivy.uix.rst')
r('KineticEffect', module='kivy.effects.kinetic')
r('ScrollEffect', module='kivy.effects.scroll')
r('DampedScrollEffect', module='kivy.effects.dampedscroll')
r('OpacityScrollEffect', module='kivy.effects.opacityscroll')
r('Recognizer', module='kivy.multistroke')
r('MultistrokeGesture', module='kivy.multistroke')
r('UnistrokeTemplate', module='kivy.multistroke')
r('ProgressTracker', module='kivy.multistroke')
r('GestureSurface', module='kivy.uix.gesturesurface')
r('GestureContainer', module='kivy.uix.gesturesurface')
r('RecycleViewBehavior', module='kivy.uix.recycleview.__init__')
r('RecycleView', module='kivy.uix.recycleview.__init__')
r('LayoutSelectionBehavior', module='kivy.uix.recycleview.layout')
r('RecycleLayoutManagerBehavior', module='kivy.uix.recycleview.layout')
r('RecycleDataViewBehavior', module='kivy.uix.recycleview.views')
r('RecycleKVIDsDataViewBehavior', module='kivy.uix.recycleview.views')
r('RecycleDataAdapter', module='kivy.uix.recycleview.views')
r('RecycleDataModelBehavior', module='kivy.uix.recycleview.datamodel')
r('RecycleDataModel', module='kivy.uix.recycleview.datamodel')
r('RecycleLayout', module='kivy.uix.recyclelayout')
r('RecycleGridLayout', module='kivy.uix.recyclegridlayout')
r('RecycleBoxLayout', module='kivy.uix.recycleboxlayout')
KivyMD Factory:
r("MDFloatLayout", module="kivymd.uix.floatlayout")
r("MDScreen", module="kivymd.uix.screen")
r("MDBoxLayout", module="kivymd.uix.boxlayout")
r("MDGridLayout", module="kivymd.uix.gridlayout")
r("MDStackLayout", module="kivymd.uix.stacklayout")
r("MDExpansionPanel", module="kivymd.uix.expansionpanel")
r("MDExpansionPanelOneLine", module="kivymd.uix.expansionpanel")
r("MDExpansionPanelTwoLine", module="kivymd.uix.expansionpanel")
r("MDExpansionPanelThreeLine", module="kivymd.uix.expansionpanel")
r("FitImage", module="kivymd.utils.fitimage")
r("MDBackdrop", module="kivymd.uix.backdrop")
r("MDTab", module="kivymd.uix.bottomnavigation")
r("MDBanner", module="kivymd.uix.banner")
r("MDTooltip", module="kivymd.uix.tooltip")
r("MDBottomNavigation", module="kivymd.uix.bottomnavigation")
r("MDBottomNavigationItem", module="kivymd.uix.bottomnavigation")
r("MDBottomNavigationHeader", module="kivymd.uix.bottomnavigation")
r("MDBottomNavigationBar", module="kivymd.uix.bottomnavigation")
r("MDBottomSheet", module="kivymd.uix.bottomsheet")
r("MDListBottomSheet", module="kivymd.uix.bottomsheet")
r("MDGridBottomSheet", module="kivymd.uix.bottomsheet")
r("MDFloatingActionButtonSpeedDial", module="kivymd.uix.button")
r("MDIconButton", module="kivymd.uix.button")
r("MDRoundImageButton", module="kivymd.uix.button")
r("MDFlatButton", module="kivymd.uix.button")
r("MDRaisedButton", module="kivymd.uix.button")
r("MDFloatingActionButton", module="kivymd.uix.button")
r("MDRectangleFlatButton", module="kivymd.uix.button")
r("MDTextButton", module="kivymd.uix.button")
r("MDCustomRoundIconButton", module="kivymd.uix.button")
r("MDRoundFlatButton", module="kivymd.uix.button")
r("MDFillRoundFlatButton", module="kivymd.uix.button")
r("MDRectangleFlatIconButton", module="kivymd.uix.button")
r("MDRoundFlatIconButton", module="kivymd.uix.button")
r("MDFillRoundFlatIconButton", module="kivymd.uix.button")
r("MDCard", module="kivymd.uix.card")
r("MDSeparator", module="kivymd.uix.card")
r("MDChip", module="kivymd.uix.chip")
r("MDChooseChip", module="kivymd.uix.chip")
r("MDDialog", module="kivymd.uix.dialog")
r("MDInputDialog", module="kivymd.uix.dialog")
r("MDFileManager", module="kivymd.uix.filemanager")
r("Tile", module="kivymd.uix.imagelist")
r("SmartTile", module="kivymd.uix.imagelist")
r("SmartTileWithLabel", module="kivymd.uix.imagelist")
r("SmartTileWithStar", module="kivymd.uix.imagelist")
r("MDLabel", module="kivymd.uix.label")
r("MDIcon", module="kivymd.uix.label")
r("MDList", module="kivymd.uix.list")
r("ILeftBody", module="kivymd.uix.list")
r("ILeftBodyTouch", module="kivymd.uix.list")
r("IRightBody", module="kivymd.uix.list")
r("IRightBodyTouch", module="kivymd.uix.list")
r("ContainerSupport", module="kivymd.uix.list")
r("OneLineListItem", module="kivymd.uix.list")
r("TwoLineListItem", module="kivymd.uix.list")
r("ThreeLineListItem", module="kivymd.uix.list")
r("OneLineAvatarListItem", module="kivymd.uix.list")
r("TwoLineAvatarListItem", module="kivymd.uix.list")
r("ThreeLineAvatarListItem", module="kivymd.uix.list")
r("OneLineIconListItem", module="kivymd.uix.list")
r("TwoLineIconListItem", module="kivymd.uix.list")
r("ThreeLineIconListItem", module="kivymd.uix.list")
r("OneLineRightIconListItem", module="kivymd.uix.list")
r("TwoLineRightIconListItem", module="kivymd.uix.list")
r("ThreeLineRightIconListItem", module="kivymd.uix.list")
r("OneLineAvatarIconListItem", module="kivymd.uix.list")
r("TwoLineAvatarIconListItem", module="kivymd.uix.list")
r("ThreeLineAvatarIconListItem", module="kivymd.uix.list")
r("ThreeLineAvatarIconListItem", module="kivymd.uix.managerswiper")
r("MDSwiperManager", module="kivymd.uix.managerswiper")
r("MDSwiperPagination", module="kivymd.uix.managerswiper")
r("ItemPagination", module="kivymd.uix.managerswiper")
r("MDMenu", module="kivymd.uix.menu")
r("MDDropdownMenu", module="kivymd.uix.menu")
r("MDContextMenu", module="kivymd.uix.context_menu")
r("HoverBehavior", module="kivymd.uix.behaviors.hover_behavior")
r("FocusBehavior", module="kivymd.uix.behaviors.hover_behavior")
r("MDMenuItem", module="kivymd.uix.menu")
r("MDNavigationDrawer", module="kivymd.uix.navigationdrawer")
r("NavigationLayout", module="kivymd.uix.navigationdrawer")
r("MDDatePicker", module="kivymd.uix.picker")
r("MDTimePicker", module="kivymd.uix.picker")
r("MDThemePicker", module="kivymd.uix.picker")
r("MDProgressBar", module="kivymd.uix.progressbar")
r("MDProgressLoader", module="kivymd.uix.progressloader")
r("MDScrollViewRefreshLayout", module="kivymd.uix.refreshlayout")
r("MDCheckbox", module="kivymd.uix.selectioncontrol")
r("Thumb", module="kivymd.uix.selectioncontrol")
r("MDSwitch", module="kivymd.uix.selectioncontrol")
r("MDSlider", module="kivymd.uix.slider")
r("Snackbar", module="kivymd.uix.snackbar")
r("MDSpinner", module="kivymd.uix.spinner")
r("MDStackFloatingButtons", module="kivymd.uix.stackfloatingbutton")
r("MDFloatingLabel", module="kivymd.uix.stackfloatingbutton")
r("MDFloatingLabel", module="kivymd.uix.tab")
r("MDTabsLabel", module="kivymd.uix.tab")
r("MDTabsBase", module="kivymd.uix.tab")
r("MDTabsMain", module="kivymd.uix.tab")
r("MDTabsCarousel", module="kivymd.uix.tab")
r("MDTabsScrollView", module="kivymd.uix.tab")
r("MDTabsBar", module="kivymd.uix.tab")
r("MDTabs", module="kivymd.uix.tab")
r("MDTextField", module="kivymd.uix.textfield")
r("MDTextField", module="kivymd.uix.textfield")
r("MDTextFieldRound", module="kivymd.uix.textfield")
r("MDTextFieldRect", module="kivymd.uix.textfield")
r("MDToolbar", module="kivymd.uix.toolbar")
r("MDBottomAppBar", module="kivymd.uix.toolbar")
r("MDUserAnimationCard", module="kivymd.uix.useranimationcard")
r("MDDropDownItem", module="kivymd.uix.dropdownitem")

KivyMD实际上是一个框架,可以做任何事情,Flutter, Java, Kotlin, React可以做,因为它是由python驱动的,祝你好运。你也可以在我的个人资料中查看答案,我经常分享完整的工作示例。

是可以从KivyMDMDApp类继承KivyMDApp类所以只需要使用MDApp


from kivy.uix.boxlayout import BoxLayout
from kivy.uix.button import Button
from kivymd.app import MDApp
from kivymd.uix.button import MDRaisedButton

class TestApp(MDApp):
def build(self):
box=BoxLayout()
kivy_button=Button(text='Kivy Button')
kivymd_button=MDRaisedButton(text='Kivy Button')
box.add_widget(kivy_button)
box.add_widget(kivymd_button)
return box
TestApp().run()

最新更新