【发布时间】:2021-10-15 15:30:00
【问题描述】:
我在文本文件中有数据。
AAA
BBB
CCC
111
222
333
!!!
@@@
###
XXX
YYY
ZZZ
读取文件并能够分配字典没有问题。字典由键和对列表组成。选择的随机键之一和相关列表中的随机行将作为问题选取。与标签相关的问题。
剩下的元素变成了答案。尝试设置动态复选框,但无法暂停执行。目前,我们的想法是通过Checkbuttons 获取价值,如果它是同一对的一部分,它应该移动到下一次迭代。
我尝试了一些东西,但无法处理返回值。不是我的方法是正确的。我应该使用 cmd 按钮而不是等待Checkbutton 点击吗?
这是我修改后的代码:
import tkinter
from tkinter import *
import random
window = Tk()
def quiz():
chkValue = IntVar()
QL = Label(window,text = (Q), bg = "Blue").pack()
for x in range(len(cpll[key])):
chkValue[x] = Variable()
print(cpll[key][x])
QA[x] = Checkbutton(window,text = cpll[key][x],var=chkValue[x], command=nextq).pack()[x],var=chkValue, command=nextq).pack()
def nextq():
pass
# Using readlines()
file1 = open('cpll.txt', 'r')
lines = file1.readlines()
cpll ={}
count = 0
idx = 0
for line in lines:
if line == "\n":
idx +=1
count += 1
else:
cpll.setdefault(idx,[]).append(line.strip())
count += 1
for key, values in cpll.items():
print(key)
if(isinstance(values, list)):
for value in values:
print(value)
else:
print(value)
for value in cpll.values():
print(value)
key_list = list(cpll)
random.shuffle(key_list)
d2 = {}
for key in key_list:
d2[key] = cpll[key]
Q = random.choice(cpll[key])
cpll[key].remove(Q)
quiz()
window.mainloop()
【问题讨论】:
-
Tkinter GUI 程序不执行imperatively 你可能习惯于编程的方式。他们是event-driven——一个完全不同的编程范式。有关更多信息,请参阅Tkinter — executing functions over time 的答案。
-
还要注意
Checkbuttons 不暂停或return值。
标签: python python-3.x tkinter