2015-03-13 144 views
-2

我有这个问题一段时间,在我的测验不起作用的地方,即使代码在那里,某些tkinter窗口也不会关闭。然而,在和我的老师谈话后,他说可以阅读我的文本文件以获得问题和答案,然后将它们放在一个列表中,以便随机选择它们以显示在窗口中(这样毫无疑问出现两次)。然后他说你可以在每个问题得到回答之后刷新窗口,并用不同的答案提出不同的问题(甚至可能是每个问题之间的“正确”/“错误”)。如果任何人有一个想法如何做,这将是一个巨大的帮助。谢谢。将问题放入列表中并随机选择它们

def quiz_easy(): 

    global question 
    questions = [] 
    correctanswers = [] 
    possibleanswer1s = [] 
    possibleanswer2s = [] 
    possibleanswer3s = [] 
    easy_questions = open("sup.txt", "r") 

    count = 1 
    for line in easy_questions: 
     if count == 1: 
      questions.append(line.rstrip()) 
     elif count == 2: 
      correctanswers.append(line.rstrip()) 
     elif count == 3: 
      possibleanswer1s.append(line.rstrip()) 
     elif count == 4: 
      possibleanswer2s.append(line.rstrip()) 
     elif count == 5: 
      possibleanswer3s.append(line.rstrip()) 
     if count == 5: 
      count = 1 
     else: 
      count = count + 1 

    print(questions) 
    print (correctanswers) 

    randno1 = random.randint(0,len(questions)-1) 
    master = Tk() 
    text = Text(master) 
    text.insert(INSERT, questions[randno1]) 
    text.insert(END, "?") 
    text.pack() 
    text.tag_add("here","5.0", "1.4") 
    text.tag_add("start", "1.8", "1.13") 
+2

这听起来像你要求我们为你做功课。你有关于你希望我们回答的这个问题的具体问题吗? – 2015-03-13 13:44:06

+0

你为什么使用'global'? – Gx1sptDTDa 2015-03-13 14:01:36

+0

@BryanOakley不,我不做我的功课。这是我正在写的一个程序,我正在从我的老师那里得到帮助。我正在尝试做一个测验。 – 2015-03-13 15:39:23

回答

0

想到了顺

你测验的OOP这一翻译应该是一类。

避免MVC方法,保持简单的类直接处理UI,数据和过程。

构造阅读问题的文件,并更新内部数据表示(可能是返修过),并启动根Tk的实例

创建显示专用的问题(一个标签)和区域的方法答案(条目) 添加一个“OK”按钮或绑定的输入插件的键开始致力于答案的控制和正确答案

的显示方法创建此方法

添加一种用于Tkinter主循环的方法

在主脚本实例化的QUIZZ的,调用方法“显示问题”,然后呼吁主循环()方法

我们正在等待你的代码;-)协助

提示:1:身高:

import Tkinter as tk # instead of from Tkinter import * to keep your code explicit. 

2:忘记在你的代码中的全局指令..非感觉这里 3:文件阅读是rought,你的文件的格式不优化。 不要在XML paradygm去得太快.. 想想前缀统治者

QUE translate pig in french 
COR cochon 
ALT proc 
ALT truie 
ALT verrat 
ALT porcelet 
ALT cochonet 
ALT gorret 
ALT nourrin 
ALT nourrain 
ALT cochette 

的每一行,你只是追加一个可能的答案中可能的答案

准备运行你的大脑的列表...走。 ^^