【发布时间】:2020-06-18 16:06:47
【问题描述】:
我正在尝试使用 Tkinter 制作一个允许您输入 URL 或 ID 的 GUI。
示例网址:https://www.fanfiction.net/s/10030860/1/The-Final-Battle 示例 ID:10030860
如您所见,ID 嵌入在 URL 中。我想要两个条目,一个用于输入 URL,另一个用于输入 ID。如果用户填写 URL 框,则会自动生成 ID。 (如果我将示例 URL 放在 URL 输入框中,我希望自动生成 ID 框中的示例 ID,反之亦然)如果用户填写 ID 框,则自动生成 URL。
更多例子:(括号是假装输入框)
URL: [https://www.fanfiction.net/s/10030860/1/The-Final-Battle] <-- If I fill this in
ID: [10030860] <-- Python fills this in for me
URL: [https://www.fanfiction.net/s/10030860/1/The-Final-Battle] <-- Python fills this in for me
ID: [10030860] <-- If I fill this in
到目前为止,这是我的代码:
import tkinter as tk
from tkinter import ttk
# Define a function to autofill in the URL and ID entries
def autofill_id_url():
fanfic_url.set("https://www.fanfiction.net/s/" + fanfic_id.get() + "/1/")
root.after(100, autofill_id_url)
# Root window
root = tk.Tk()
# Define the labeled frame where we input stuff
input_frame = tk.LabelFrame(master=root, text="Input")
input_frame.grid(row=0, column=0, padx=1, pady=1, rowspan=2, sticky=tk.NS)
# Label for entering URL
ttk.Label(master=input_frame, text="URL:").grid(row=0, column=0, padx=1, pady=1)
# Entry field for URL
fanfic_url = tk.StringVar()
url_entry = ttk.Entry(master=input_frame, textvariable=fanfic_url)
url_entry.grid(row=0, column=1, padx=1, pady=1)
# Label for entering ID
ttk.Label(master=input_frame, text="ID:").grid(row=1, column=0, padx=1, pady=1)
# Entry field for ID
fanfic_id = tk.StringVar()
id_entry = ttk.Entry(master=input_frame, textvariable=fanfic_id)
id_entry.grid(row=1, column=1, padx=1, pady=1)
# Start callback functions
autofill_id_url()
# Start GUI event loop
root.mainloop()
我有填写ID时的部分,URL是自动生成的。但是我不知道如何做到这一点,当您填写 URL 框时,您会得到为您填写的 ID 框。
提前致谢。
【问题讨论】:
标签: python user-interface tkinter user-input