- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想通过来自 Screen1 的输入更新 kivy 上的标签并在 Screen3 上显示。在 Screen1 我在 textinput id:slot 输入,'test' 是全局变量,从中获取变量。当我尝试在 Screen3 上做时。 'test' 它可以从 Screen1 获取变量,但它不会在 Screen3 上更新。
我该如何解决?如果我做错了什么,请给我建议。我是初学者。
这是我的代码
.py 代码:
from kivy.app import App
from kivy.uix.screenmanager import ScreenManager,Screen,NoTransition
from kivy.properties import ObjectProperty,StringProperty,NumericProperty
from kivy.uix.widget import Widget
from kivy.lang import Builder
from kivy.uix.textinput import TextInput
from kivy.uix.floatlayout import FloatLayout
from kivy.core.window import Window
from kivy.uix.image import Image
from kivy.clock import Clock
import time
import mysql.connector as mariadb
import sys
Window.size=(800,480)
Builder.load_file("mainmenu.kv")
test=''
class Mainscreen(Screen):
pass
class Screen1(Screen):
sslot=StringProperty(None)
sname=StringProperty(None)
sprice=NumericProperty(0)
samount=NumericProperty(0)
def __init__(self,**kwargs):
super(Screen1, self).__init__(**kwargs)
sslot=self.sslot
sname=self.sname
sprice=self.sprice
samount=self.samount
def setprice(self):
global test
if self.f_slot.text!='' and self.f_name.text!='' and self.f_price.text!=0 and self.f_amount.text!=0 :
sslot=str(self.f_slot.text)
sname=self.f_name.text
sprice=int(self.f_price.text)
samount=int(self.f_amount.text)
test=sslot
mariadb_connection = mariadb.connect(host='localhost', user='pop', password='raspberry', database='setprice')
cursor=mariadb_connection.cursor()
sql="UPDATE Setprice SET Name=%s,Price=%s,Amount=%s WHERE Slot=%s"
val=(sname,sprice,samount,sslot)
cursor.execute(sql,val)
mariadb_connection.commit()
self.ids.slot.text=""
self.ids.name.text=""
self.ids.price.text=""
self.ids.amount.text=""
self.ids.slot.focus=True
self.ids.name.focus=False
self.ids.price.focus=False
self.ids.amount.focus=False
else:
print("error")
class Screen2(Screen):
pass
class Screen3(Screen):
#This it what i can't do
fsales=StringProperty()
def __init__(self,**kwargs):
super(Screen3, self).__init__(**kwargs)
Clock.schedule_once(self.updatesales,0.1)
def updatesales(self,*args):
global test
self.fsales=test
print(self.fsales)
class Screen4(Screen):
pass
class Screen21(Screen):
pass
class Screen22(Screen):
pass
class Manager(ScreenManager):
screen_mainmenu=ObjectProperty(None)
screen_menu1=ObjectProperty(None)
screen_menu2=ObjectProperty(None)
screen_menu3=ObjectProperty(None)
screen_menu4=ObjectProperty(None)
class VendingmachineApp(App):
Menu3=Screen3()
def build(self):
m=Manager(transition=NoTransition())
return m
if __name__=="__main__":
VendingmachineApp().run()
.kv 代码:
<Mainscreen>:
BoxLayout:
orientation:'vertical'
spacing:2
padding:30
Label:
text:"Menu"
font_size:40
Button:
text:"Setprice & amount"
on_press:root.manager.current='screen_menu1'
font_size:30
Button:
text:"Motor"
on_press:root.manager.current='screen_menu2'
font_size:30
Button:
text:"Check sales"
on_press:
root.manager.current='screen_menu3'
app.Menu3.updatesales()
font_size:30
Button:
text:"Data log"
on_press:root.manager.current='screen_menu4'
font_size:30
<Screen1>:
f_slot:slot
f_name:name
f_price:price
f_amount:amount
enter:enter
FloatLayout:
Label:
text:'Setprice & amount'
font_size:40
size:600,150
size_hint:(None,None)
pos:(0,370)
Label:
text:'Slot : '
font_size:30
size:600,150
size_hint:(None,None)
pos:(-20,300)
TextInput:
id:slot
multiline:False
focus: True
input_filter:"int"
font_size:30
size:200,50
size_hint:(None,None)
pos:(450,350)
on_text_validate:
name.focus=True
Label:
text:'Name : '
font_size:30
size:600,150
size_hint:(None,None)
pos:(-10,220)
TextInput:
id:name
focus: False
multiline:False
font_size:30
size:200,50
size_hint:(None,None)
pos:(450,270)
on_text_validate:
price.focus=True
Label:
text:'Price : '
font_size:30
size:600,150
size_hint:(None,None)
pos:(-15,140)
TextInput:
id:price
multiline:False
input_filter:"int"
focus: False
font_size:30
size:200,50
size_hint:(None,None)
pos:(450,190)
on_text_validate:
amount.focus=True
Label:
text:'Amount : '
font_size:30
size:600,150
size_hint:(None,None)
pos:(0,60)
TextInput:
id:amount
multiline:False
input_filter:"int"
font_size:30
focus: False
size:200,50
size_hint:(None,None)
pos:(450,110)
on_text_validate:root.setprice()
Button:
id:back
background_normal:'back.png'
size:100,93
size_hint:(None,None)
pos:(80,20)
on_press:root.manager.current='screen_mainmenu'
Button:
id:enter
text:'Enter'
size:250,50
size_hint:(None,None)
pos:(430,30)
font_size:30
focus:False
on_press:root.setprice()
<Screen2>:
FloatLayout:
Label:
text:'Motor'
font_size:40
size:600,150
size_hint:(None,None)
pos:(-140,370)
Button:
text:"Motor log"
#on_press:root.manager.current='screen_'
size:600,120
size_hint:(None,None)
font_size:30
pos:(100,275)
Button:
text:"Test Motor"
#on_press:root.manager.current='screen_three'
size:600,120
size_hint:(None,None)
font_size:30
pos:(100,150)
Button:
background_normal:'back.png'
size:100,93
size_hint:(None,None)
pos:(80,20)
on_press:root.manager.current='screen_mainmenu'
<Screen3>
id:Menu3
FloatLayout:
Label:
text:'Check sales'
font_size:40
size:600,150
size_hint:(None,None)
pos:(-90,350)
Label:
text:'Total sales : '
font_size:30
size:250,100
size_hint:(None,None)
pos:(100,300)
Label:
id:ttsales
text:Menu3.fsales
font_size:30
size:250,100
size_hint:(None,None)
pos:(100,350)
Button:
text:'More'
font_size:20
size:80,60
size_hint:None,None
pos:(500,320)
Button:
text:'Clear sales'
font_size:30
size:600,100
size_hint:(None,None)
pos:(100,200)
Button:
background_normal:'back.png'
size:100,93
size_hint:(None,None)
pos:(80,20)
on_press:root.manager.current='screen_mainmenu'
<Screen4>
FloatLayout:
Label:
text:'Data log'
font_size:40
size:600,150
size_hint:(None,None)
pos:(-125,350)
Button:
text:'Sales report'
font_size:30
size:600,100
size_hint:(None,None)
pos:(100,280)
Button:
text:'Hot product sales'
font_size:30
size:600,100
size_hint:(None,None)
pos:(100,170)
Button:
background_normal:'back.png'
size:100,93
size_hint:(None,None)
pos:(80,20)
on_press:root.manager.current='screen_mainmenu'
<Manager>:
id:screen_manager
screen_mainmenu:screen_mainmenu
screen_menu1:screen_menu1
screen_menu2:screen_menu2
screen_menu3:screen_menu3
screen_menu4:screen_menu4
screen_menu21:screen_menu21
screen_menu22:screen_menu22
Mainscreen:
id:screen_mainmenu
name:'screen_mainmenu'
manager:screen_manager
Screen1:
id:screen_menu1
name:'screen_menu1'
manager:screen_manager
Screen2:
id:screen_menu2
name:'screen_menu2'
manager:screen_manager
Screen3:
id:screen_menu3
name:'screen_menu3'
manager:screen_manager
Screen4:
id:screen_menu4
name:'screen_menu4'
manager:screen_manager
Screen21:
id:screen_menu21
name:'screen_menu21'
manager:screen_manager
Screen22:
id:screen_menu22
name:'screen_menu22'
manager:screen_manager
最佳答案
因此,如果您希望在 Screen3
中发生某些事情在 Screen1
工作时- 这是您实现它的方法。
self.manager.get_screen('screen3').ids.labelid.text = 'NewText'
textinput
的情况下的
screen1
关于python - 更新 kivy 上的标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61510286/
我正在准备在 kivy 中做一个进度条,我可以用它构建应用程序,但是当我运行一个函数(循环)时它不能被更新,我该怎么做? 这是我的代码: 导入库: from kivy.app import App f
为猕猴桃中的按钮创建圆角的首选方法是什么? 还有其他同样可行的方法来执行此任务吗?谢谢。 最佳答案 这是一个棘手的问题。就我而言,Widgets始终是矩形。但是我们可以更改背景,并分别使用backgr
我是kivy的新手。我有一个按钮可以刷新数据库中的列表项,这是绑定(bind)到该按钮的函数: def refresh_account(self): self.ids.grid.clear_w
我正在尝试使用 NumericProperty,但在尝试将其用作值时出现类型错误 我的代码是这样的 from kivy.properties import NumericProperty from k
在按钮中组合图像/图标和文本的首选方法是什么?例如,您将如何使用 text = 'my button' 创建按钮,以及该文本左侧的图形图标? 最佳答案 关于问题#2。 Kivy 的工作方式是嵌入 Wi
在 kivy 中,您如何使用自动居中的多行文本创建按钮或标签?如果你做类似的事情,Button(text = 'my button\nthis is my button') ,似乎只有一条线会居中,而
我知道如何制作彩色背景,但我似乎找不到任何有用的内容将图像设置为背景,并且非常感谢您对我的代码的任何帮助。 这是我的 .py 文件: from kivy.app import App from kiv
我的 Kivy 语言文件有许多 font_size 属性,所有属性都具有相同的值,是否可以在 KV lang 中分配变量? 当前 KV 文件示例: #User ID Label:
我有一个使用许多标签的 kivy 应用程序。是否可以从列表中获取它们的值?例如(但这不起作用) Label: text:root.label_value[0]
任何人都可以帮助我使用任何 sdk 在 kivy 应用程序中实现广告。 Revmobs 已停止支持 Kivy。 任何其他实现广告的方法也可以使用。 谢谢 最佳答案 我在 上取得了成功AdBuddiz
基维 gesture documentation有点缺乏,仅指手势示例。 我想知道为什么 Kivy 不提供任何辅助方法,例如 on_swipe_left、on_swipe_up 等。最好将 minsc
我目前使用的是 python 2.7.9。我试过重新安装 cython 并更新所有依赖项,但它没有用。我不知道 Buildozer 或 Cython 有什么问题。该应用程序直接从终端正常运行。 #er
Kivy 文档指定 "each widget in Kivy already have by default their Canvas" .然而,在实践中,小部件似乎持有对整个窗口的共享 Canvas
我是 Python 库 kivy 的新手。我找到了额外的库 kivy-md,它有非常漂亮的 ui 元素。目前我想从字典变量创建许多 MDTextField 小部件,例如 # text_fields.p
python 3.4基维 1.10.0 我正在尝试使用 Kivy Animation 类来为我的 Image 类制作动画。这是因为我想分别修改每个图像的 anim_delay 和位置值。 我想修改图像
我正在尝试使用 kivy 启动器在我的 android 上启动我的应用程序,这样我就可以在较小的屏幕上看到小部件位置/大小发生了什么。 当我启动时,它崩溃了。 所以...我猜我在我的应用程序中做了一些
有谁知道如何在 Kivy 中增加 MeshLinePlot 的线宽? 谢谢 更新 我从@Ikolim 那里得到了关于修改 kivy.graph 中的 LinePLot 函数的答案 class Line
如何使用 Kivy 更改窗口的大小。我一直在四处寻找,除了进入窗口的大小之外,我几乎可以更改所有内容。 从示例图片文件: 主文件 #!/usr/bin/kivy ''' Pictures demo =
我试图在 Windows 上安装 kivy 设计器。我按照步骤操作,但是当我尝试运行时 python -m designer 我收到以下错误: [INFO ] [Kivy ] v1.
我正在尝试让我的 python 和 kivy 文件打开一个弹出窗口。它说我的 Boxlayout 对象没有属性“open_popup” 这是我的Python代码: from kivy.app impo
我是一名优秀的程序员,十分优秀!