python - Kivy 将图像作为按钮添加到另一个页面
问题描述
我有一个应用程序,将来会是一个纸牌游戏计数器,但现在它离那个阶段还很远,无论如何,我有 3 个文件,main.py,screens.kv,screens2.kv(其中没有任何内容它)现在我也得到了一张图片,它是一个按钮,每次按下它时,为了测试它会写下“按下”,我已经在这个上面至少有 2 个小时了,无法弄清楚如何让按钮出现我按下“开始 Pasmar”(Pasmar 是未来游戏的名称),在我按下按钮后它显示的只是一个空白屏幕,但我确实更换了它们,它只显示按钮,没有别的。
这是我当前的代码:
#-*- coding: utf-8 -*-
from kivy.app import App
from kivy.uix.screenmanager import ScreenManager, Screen, NoTransition
from kivy.properties import ObjectProperty
from kivy.uix.tabbedpanel import TabbedPanel
from kivy.uix.tabbedpanel import TabbedPanelHeader
from kivy.uix.floatlayout import FloatLayout
from kivy.uix.gridlayout import GridLayout
from functools import partial
from kivy.base import runTouchApp
from kivy.uix.image import Image
from kivy.uix.widget import Widget
from kivy.uix.popup import Popup
import sys
from kivy.uix.floatlayout import FloatLayout
from kivy.uix.image import Image
from kivy.uix.behaviors import ButtonBehavior
from kivy.lang import Builder
from kivy.base import runTouchApp
import random
import time
#!/usr/bin/env python
# -*- coding: utf-8 -*-
from kivy.app import App
from kivy.uix.screenmanager import ScreenManager, Screen, NoTransition
from kivy.properties import ObjectProperty, NumericProperty
import time
import threading
class ScreensApp(App):
def build(self):
return RootWidget()
class ScreenOne(Screen):
pass
class ScreenTwo(Screen):
def __init__(self, **kwargs):
super(ScreenTwo, self).__init__(**kwargs)
class RootWidget(FloatLayout):
pass
class ImageButton(ButtonBehavior, Image):
def on_press(self):
print ('pressed')
def displayScreenThenLeave(self):
self.changeScreen()
def changeScreen(self):
if self.manager.current == 'screen1':
self.manager.current = 'screen2'
else:
self.manager.current = 'screen1'
class Manager(ScreenManager):
screen_one = ObjectProperty(None)
screen_two = ObjectProperty(None)
class ScreensApp(App):
def build(self):
m = Manager(transition=NoTransition())
return m
if __name__ == "__main__":
ScreensApp().run()
class The_AssignmentApp(App):
def build(self):
return RootWidget()
if __name__ == "__main__":
The_AssignmentApp().run()
这是kv文件:
#:kivy 1.10.1
<ScreenOne>:
BoxLayout:
orientation: "vertical"
size: root.size
spacing: 15
padding: 200
Label:
font_size: 34
text: "Pasmar"
Button:
background_color: 0, 255, 0, .255
text: "Start Pasmar"
on_release: root.manager.current = "screen2"
<ScreenTwo>:
BoxLayout:
orientation: "vertical"
size: root.size
spacing: 20
padding: 20
<Manager>:
id: screen_manager
screen_one: screen_one
screen_two: screen_two
ScreenOne:
id: screen_one
name: "screen1"
manager: screen_manager
ScreenTwo:
id: screen_two
name: "screen2"
manager: screen_manager
解决方案
推荐阅读
- css - CSS网格中的图像不会居中
- javascript - 使用 Javascript 的电子商务网站的简单流行/趋势产品算法
- c++ - 将 void* 转换为 const void**
- vba - 使用 SUMIF 公式的 VBA 错误代码 1004
- python - Python、Django:编辑 inlineformset_factory
- html - document.getElementById().textContent 不适用于数字
- javascript - 在 php 的外部文件中运行 javascript 函数时遇到一些问题
- mysql - 为什么在 phpmyadmin 中删除触发器后会失败?
- embedded - 电子纸显示器和树莓派 Pico
- api - 如何为我最新的 Terraform (Enterprise) 运行获取远程状态文件?