如何解决当用户单击添加按钮时,如何从用户那里获取数据? 摘要摘要摘要 KivyMD应用-添加乙烯基 SQLite数据库:vinyl.db
这是主要应用程序:
from kivymd.app import MDApp
import sqlite3
class Vinylapp(MDApp):
connection = None
cur = None
connection = sqlite3.connect("vinyl.db")
cur = connection.cursor()
cur.execute("""CREATE TABLE IF NOT EXISTS Vinyl(
name TEXT,alboum TEXT,song TEXT)
""")
connection.commit()
connection.close()
def vinyl_add(name,alboum,song):
connection = sqlite3.connect("vinyl.db")
cur = connection.cursor()
connection.execute("INSERT INTO Vinyl VALUES (?,?,?)",(name,song))
connection.commit()
connection.close()
Vinylapp().run()
这是kivy文件代码:
主屏幕
MDScreen:
bg: app.theme_cls.bg_light
MDToolbar:
id: toolbar
pos_hint: {"bottom": 1}
title: "Search By Name "
elevation: 10
md_bg_color: [0/255,200/255,0/255,1]
right_action_items: [['magnify',lambda x: app.search_menu.app]]
MDLabel:
text:"ADD VINYL"
halign:"center"
font_style: "Button"
font_size: 20
pos_hint:{"center_x":.5,"center_y":.8}
MDTextField:
hint_text:"Composer Name"
pos_hint: {"center_x":0.5,"center_y":0.6}
size_hint_x:.3
current_hint_text_color: 0,1
color_mode: 'custom'
line_color_focus: [0/255,1]
MDTextField:
hint_text:"Song Name"
pos_hint: {"center_x":0.5,"center_y":0.4}
size_hint_x:.3
current_hint_text_color: 0,1]
MDTextField:
hint_text:"Alboum Name"
pos_hint: {"center_x":0.5,"center_y":0.5}
size_hint_x:.3
current_hint_text_color: 0,1]
和按钮
MDRaisedButton:
text:"ADD"
pos_hint: {"center_x":.5,"center_y":.23}
size_hint_x: 0.3
text_color: 1,1,1
md_bg_color: [0/255,1]
on_press: app.vinyl_add()
解决方法
解决方案
使用ids
来引用MDTextField
。对Python脚本和kv文件进行以下更改。
main.py
需要将self
添加到方法vinyl_add
中,因为它被定义为MDApp
类的方法。
摘要
def vinyl_add(self,name,alboum,song):
print(name,song)
...
kv文件
- 将
ids
添加到MDTextField:
中,以便您引用它们。
摘要
MDTextField:
id: composer
hint_text:"Composer Name"
...
MDTextField:
id: song
hint_text:"Song Name"
...
MDTextField:
id: album
hint_text:"Alboum Name"
- 将
MDTextField:
的文本值作为参数传递给函数调用。
摘要
MDRaisedButton:
text:"ADD"
...
on_press: app.vinyl_add(composer.text,album.text,song.text)
输出:
KivyMD应用-添加乙烯基
SQLite数据库:vinyl.db
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。