python - 为什么按钮文本不会显示在 python 中的按钮上?
问题描述
我在 tkinter python 中做了一个注册程序。该程序运行良好,但按钮没有文字。这是代码:
from tkinter import *
import sqlite3
root = Tk()
root.geometry('500x500')
root.title("Registration Form")
Fullname = StringVar()
Email = StringVar()
var = IntVar()
c = StringVar()
var1 = IntVar()
def database():
name1 = Fullname.get()
email = Email.get()
gender = var.get()
country = c.get()
prog = var1.get()
conn = sqlite3.connect('tennis.db')
with conn:
cursor = conn.cursor()
cursor.execute(
'CREATE TABLE IF NOT EXISTS Student (Fullname TEXT,Email TEXT,Gender TEXT,country TEXT,Programming TEXT)')
cursor.execute('INSERT INTO Student (FullName,Email,Gender,country,Programming) VALUES(?,?,?,?,?)',
(name1, email, gender, country, prog,))
conn.commit()
label_0 = Label(root, text="Registration form", width=20, font=("bold", 20))
label_0.place(x=90, y=53)
label_1 = Label(root, text="FullName", width=20, font=("bold", 10))
label_1.place(x=80, y=130)
entry_1 = Entry(root, textvar=Fullname)
entry_1.place(x=240, y=130)
label_2 = Label(root, text="Email", width=20, font=("bold", 10))
label_2.place(x=68, y=180)
entry_2 = Entry(root, textvar=Email)
entry_2.place(x=240, y=180)
label_3 = Label(root, text="Gender", width=20, font=("bold", 10))
label_3.place(x=70, y=230)
Radiobutton(root, text="Male", padx=5, variable=var, value=1).place(x=220, y=230)
Radiobutton(root, text="Female", padx=20, variable=var, value=2).place(x=290, y=230)
label_4 = Label(root, text="City", width=20, font=("bold", 10))
label_4.place(x=70, y=280)
list1 = ['Africa', 'Nigeria', 'Oshawa', 'Other'];
droplist = OptionMenu(root, c, *list1)
droplist.config(width=15)
c.set('select your city')
droplist.place(x=240, y=280)
label_4 = Label(root, text="Skill Level", width=20, font=("bold", 10))
label_4.place(x=85, y=330)
var2 = IntVar()
var3 = IntVar()
Checkbutton(root, text="Beginner", variable=var1).place(x=200, y=330)
Checkbutton(root, text="Intermiadiate", variable=var2).place(x=280, y=330)
Checkbutton(root, text="Advanced", variable=var3).place(x=390, y=330)
def printdatshuff():
conn = sqlite3.connect('tennis.db')
with conn:
cursor = conn.cursor()
cursor.execute("SELECT * FROM Student")
result = cursor.fetchall()
conn.commit()
for r in result:
print(r)
johy = Button(root, text='Submit', width=20, bg='brown', fg='white', command=database)
johy.place(x=180, y=380)
johy1 = Button(root, text='See all', width=20, bg='brown', fg='white', command=printdatstuff)
johy1.place(x=180, y=400)
root.mainloop()
程序的结尾是按钮代码所在的位置。我指定按钮显示文本,但它不会。如果有人知道如何解决这个问题,将不胜感激。谢谢,贾马尔
解决方案
您将前景设置为白色,这也是 OSX 上的默认背景颜色。OSX 不允许您更改背景颜色。因此,您在白色背景上有白色文本。
如果您将fg
属性更改为“白色”以外的其他内容,您将看到文本。
推荐阅读
- string - tkinter askstring 在其可见性改变之前被删除
- python - 如何将 Pandas DataFrame 与列表的字典合并
- performance - JMeter & Salesforce:面临错误,因为“加载 Visualforce 页面时发生错误。尝试取消引用空对象'
- elasticsearch - 如何在跨字段查询中包含部分匹配的结果?
- python - 无法导入彭博 api
- python - Python BeautifulSoup 在字符后拆分文本
- c++ - 错误 LNK2001:无法解析的外部符号,c++ 项目编译
- azure - 规范化资源以列出 Azure 存储表
- r - UseMethod(“read_xml”)中的错误:没有适用于“read_xml”的方法应用于“list”类的对象
- flutter - (Flutter, Firebase) 提交前的表单验证