如何使用Tkin基于数据库查询动态标记我的按钮

2024-09-27 20:15:30 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试根据数据库结果动态标记我的按钮。所以在这种情况下,按钮会被标记为“23”

数据库

|身份证|号码|

| 1 | 23

from tkinter import *
import pymysql as mdb

from tkinter import ttk


#functions
def functionHolder():
    print("do nothing function holder")


root = Tk()
dbi = mdb.connect("localhost",port=3306, user="access", passwd="***", db="index_db" )
cursor = dbi.cursor()

cursor.execute("""SELECT number FROM caution_elements WHERE id = 1 """)
dbi.commit()
data = cursor.fetchone()[0]
dbi.close()

result =str("%s " % data)



 varButt = Button(root,textvariable=data, command=functionHolder)
 varButt.pack()

 root.mainloop()

按钮应标记为[23]我目前得到一个空白按钮,没有错误


Tags: from标记import数据库dbdatatkinter动态
1条回答
网友
1楼 · 发布于 2024-09-27 20:15:30

tkinter小部件的textvariable选项需要特殊的变量类,例如StringVarBooleanVar或{}。它们的值可以使用get方法访问,它们的值可以使用set进行更改,如下所示:

import tkinter as tk

root = tk.Tk()

data = tk.StringVar()
data.set("This")

def change():
    if data.get() == "This":
        data.set("That")
    else:
        data.set("This")

tk.Label(root, textvariable=data).pack()
tk.Button(root, text="Change", command=change).pack()

root.mainloop()

如果您是not sure about using class variables,另一个没有它们的示例是:

^{pr2}$

这两个代码段都执行相同的操作,除了当您更改data的值时,在第一个示例中,您还更改了标签显示的文本,而在第二个示例中,您需要显式更新a_label的text选项。在


还请注意,您可以交替使用a_widget.config(option=value)a_widget.configure(option=value)a_widget['option'] = value,因为您只修改了一个选项。在

相关问题 更多 >

    热门问题