我使用Tkinter创建了单选按钮,每当选中单选按钮时,单击submit按钮后,我希望通过它在数据库中增加一个单选按钮。
最重要的是我想连接到MySQL数据库,但我不知道在我的脚本中添加什么。
from Tkinter import *
root= Tk()
frm=Frame(root,relief=RAISED,borderwidth=5,bg="green" )
Label(frm,text= "PLEASE SELECT CANDIDATE\n OF YOUR CHOICE\n\n\n\n",bg="green").pack()
var = IntVar()
for text, value in [('YOWERI KAGUTA MUSEVENI', 1), ('KIIZA BESIGYE', 2), ('AMAAMA JOHN MBABAZI ', 3),
('KARUNGI SHARON', 4), ('BYAMUKAMA OSCAR', 5),
('MATILDA MOREEN', 6), ('DUNCANS', 7)]:
Radiobutton(frm, text=text, value=value, variable=var,padx=18,bg="green"
).pack(anchor=E, fill=X, padx=18 )
var.set(0)
frm.pack(pady=10)
btn=Button(frm,text='submit',fg="black",bg="yellow")
btn.pack(anchor=E)
root.title("movie chooser")
root.mainloop()
我将一步一步地指导你解决问题。我想你已经在Ubuntu上安装了MySQL服务器。
无论您使用的是Tkinter还是其他GUI包,实现目标的方法都是一样的。
我需要使用什么工具?
首先,您需要安装一个Python数据库接口,该接口允许您使用Python与MySQL服务器通信。这是详尽的list of Python MySQL databse interfaces。
哪一个更适合安装?我只想谈谈我自己用过的两个词:MySQLdb和MySQL connector。
MySQLdb是一个C库,比纯Python库MySQL connector更快。为了便于携带,最好选择后者。为了速度你需要选择第一个。注意,Django使用MySQLdb。这也是我最喜欢的数据库接口,我将在下面使用。您可以在这两个接口here之间找到一个很好的比较。
如何在Ubuntu 14.04.3lts上安装MySQLdb?
安装MySQLdb的常用方法是使用pip,如here所述。但是对于Ubuntu,根据我个人的经验,我更喜欢这样安装:
sudo apt-get install build-essential python-dev libmysqlclient-dev
sudo apt-get install python-mysqldb
。现在您应该可以导入它:
>>> import MySQLdb
接口设计
首先,我们将要求用户向MySQL服务器键入他的凭据:
如果凭据错误,除非用户存在应用程序,否则窗口仍会提示自己。
如果凭据正确,则用户可以通过与您设计的窗口类似的新窗口将其收藏的“开始”保存/添加到数据库中:
实施应用程序:
1。数据库设计:
我选择最简单的,只是为了满足眼前的需要:
mysql> CREATE DATABASE begueradj;
现在是时候创建一个表来保存你最喜欢的星星了。它将包含它们的名称
starname
和自动递增的主键id
:2。第一个接口实现:
第一个屏幕截图所表示的接口由
initialize_user_interface()
函数创建:主要是将函数
dbconnexion()
绑定到登录按钮self.connectb
:3。第二个接口实现:
如果凭据正确,则显示“插入”窗口以将收藏的星星添加到数据库中。要弹出新窗口,需要使用^{} 方法。
这是由函数
item_insertion_window()
完成的:4。如何获取Tkinter单选按钮文本?
在官方文档中,只有一种方法可以检索选中的单选按钮的值,但是没有提到任何方法可以获取我们真正感兴趣的文本(星星的名字)。我也没有在StackOverflow上找到任何关于这个主题的帖子。我的诀窍是编写一个字典,使用
which_artist()
函数将单选按钮值映射到对应星的名称:此函数将在以下步骤中有用。
5。将您喜爱的星星添加到数据库:
首先,您可以将MySQL服务器参数保存在配置文件
config.py
中,但是由于我们的项目很小,而且很显然您以后不会再对其进行扩展,所以让我们将这些凭据保存在函数本身中:下面是实现插入的函数:
当然,您需要根据自己的设置更改配置字典
self.config
。另外,更适合将
self.connecttodb.close()
绑定到退出按钮self.exitb
。 6个。应用程序:以下是完整的程序:
<强>7。演示
我把一颗星星插进去Tkinter接口。让我们看看这是否有效:
希望这有帮助。
更新:
你问过我如何更新,但在理解更新语句的逻辑时,我不清楚你的评论。所以我只根据你的评论显示的一小段代码来回答。
您似乎想通过语句检查选择了哪个单选按钮:
self.var.get()
,并将某个值增加1(这就是为什么我不理解您的update语句:所以无论按哪个单选按钮,您都会执行相同的操作;这意味着单选按钮没有意义)。如果你想从你自己的神秘测试的角度来做,你需要使用^{} 选项,并为你创建的每个单选按钮将一个方法绑定到
command
选项。要使用
variable
选项,您需要首先运行以下命令:然后,对于您设置的每个单选按钮:
variable=self.v
和command = self.get_radiobutton_id
所述方法必须返回所选单选按钮的标识符:
相关问题 更多 >
编程相关推荐