我正在使用 python tkinter 和 sqlite3 為員工管理系統制作 gui。在這個 gui 用戶可以添加、查看、洗掉和更新員工資訊。還將參考日期標簽,這將通過資料提取使用 api 完成。gui 中的參考將根據 api 更改。
from tkinter import *
from tkinter.messagebox import *
from datetime import *
from tkinter.scrolledtext import *
from sqlite3 import *
import matplotlib.pyplot as plt
import requests
import bs4
def quote_label(mw_lbl_quote):
def quote():
try:
wa = "https://www.brainyquote.com/quote_of_the_day"
res = requests.get(wa)
data = bs4.BeautifulSoup(res.text, "html.parser")
info = data.find("img",{"class","p-qotd"})
q = info["alt"]
label.config(text=str(q))
except Exception as e:
showerror("issue ", e)
mw_lbl_quote = Label(main_window, text="Quote of the Day", font=f)
mw_lbl_quote.pack()
quote_label(mw_lbl_quote)
當我運行代碼時,不顯示報價。我不知道我做錯了什么,因為我運行它時沒有顯示錯誤。我該怎么做才能使它正確?
uj5u.com熱心網友回復:
有幾點需要指出:
- 您使用 master 創建您的 Label
main_window,它在您發布的代碼的任何地方都不存在。您必須通過添加main_window = Tk()并在代碼末尾啟動 GUI來創建它main_window.mainloop()。我確定這是在您的代碼中的其他地方,我將其重命名為 root 并將其添加為可重現的。 - 同樣在您的標簽中,您指定了
font=f,并且 f 也不存在。洗掉它 - 你稱你的函式是錯誤的。看看這里的功能是如何作業的。在我的示例中,我添加了一個按鈕來呼叫該函式并對其進行更正。
- 在您的函式中,您嘗試配置標簽
label,但是您將標簽定義為mw_lbl_quote - 一般來說,star 匯入是一個壞主意,所以我用你想要匯入的實際類替換它們,并注釋掉你不使用的那些。
如果這有幫助,請將答案標記為正確。
from tkinter import Tk, Label, Button
# from tkinter.messagebox import *
# from datetime import *
# from tkinter.scrolledtext import *
# from sqlite3 import *
# import matplotlib.pyplot as plt
import requests
import bs4
def quote_label():
try:
wa = "https://www.brainyquote.com/quote_of_the_day"
res = requests.get(wa)
data = bs4.BeautifulSoup(res.text, "html.parser")
info = data.find("img",{"class","p-qotd"})
q = info["alt"]
mw_lbl_quote.config(text=f"Quote of the day: {q}")
except Exception as e:
print(e)
root = Tk()
mw_lbl_quote = Label(root, text="Quote of the day: ")
mw_lbl_quote.pack()
mw_btn_quote = Button(root, text="Call the function", command=quote_label)
mw_btn_quote.pack()
root.mainloop()
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/326718.html
下一篇:迭代串列時減去的值有隨機錯誤計算
