import tkinter as tk
import tkinter.simpledialog
from tkinterdnd2 import DND_FILES, TkinterDnD
rt = TkinterDnD.Tk ()
rt.title ('WyOJ 数据配置工具')
def ask_subtask_nr ():
n = tk.simpledialog.askinteger (title='Subtask 数量',
prompt='要配置的 Subtask 数量',
initialvalue=0)
print (f'你想配置 {n} 个 Subtask')
return n
def configure_subtask (i):
def config ():
win = tk.Toplevel (rt)
win.title (f'配置 Subtask {i}')
droparea = tk.Label (win,
text='>>> 请将本 Subtask 中的测试点拖到这里 <<<',
height=10)
txt = tk.Text (win)
txt.pack ()
def drop (ev):
fp = ev.data
txt.insert (tk.END, f'{fp}\n')
droparea.drop_target_register (DND_FILES)
droparea.dnd_bind ('<<Drop>>', drop)
droparea.pack ()
txt.pack ()
return config
buttons = list ()
def create_subtask_buttons (nr):
for i in range (1, nr + 1):
butt = tk.Button (rt, text=f'配置 Subtask {i}',
command=configure_subtask (i))
butt.place (x=80, y=20 + i * 40, width=60, height=30)
butt.pack ()
buttons.append (butt)
nr = ask_subtask_nr ()
create_subtask_buttons (nr)
rt.mainloop ()
新博客
2025-09-04 15:59:41 By ryp
评论
暂无评论
发表评论
可以用@mike来提到mike这个用户,mike会被高亮显示。如果你真的想打“@”这个字符,请用“@@”。

鲁ICP备2025150228号