Tkinter:AttributeError:模块“ X”没有属性“ Y”

时间:2018-08-18 10:33:27

标签: python python-3.x tkinter

我正在尝试创建一个用于对问卷进行评分的应用。为了避免循环引用,我有3个(确实是4个,但MWE的一部分不需要一个)文件或模块(如果我没错的话)。 1)Main.py; 2)scoring.py; 3)variables.py(避免循环引用)。我需要做的就是使用main.py中的按钮打印变量dvQ1,所以也许这段代码太复杂了。

基本上,我只想对条目进行打分并打印出来(问题列表(Q1list在另一个文件中,我认为MWE不需要) 。我会尽力使用不同的文件来组织代码,因为这样会有20-32个问题。

main.py
from tkinter import *
import variables as var

Label(win, text="X, Y, Z text", justify = LEFT, wraplength=500 ).grid(row=3, columnspan=2)
q1 = IntVar()
for text, value in Q1list:
    b = Radiobutton(win, text=text, variable=q1, value=value)
    b.grid(sticky='W', rowspan=5, columnspan=2)

def print_button():
sc = var.Score()
print(sc.Q1score)

scoring.py文件只是创建dvQ1变量,该变量将传递给variables.py文件。当我从q1 scoring.py`中将变量main.py' and then imported the final variable dvQ1 or Q1score from导入main然后进行打印时,就会发生循环关系。这就是为什么我添加了“ variables.py”文件。

scoring.py
from main import *

Q1 = q1.get()
if Q1 == 1:
    dvQ1 = 0
elif Q1 == 2:
    dvQ1 = 0.873
elif Q1 == 3:
    dvQ1 = 0.237
elif Q1 == 4:
    dvQ1 = 0.86
elif Q1 == 5:
    dvQ1 = 1
else:
    dvQ1 = np.NaN

我正在尝试构建该类的最后一个文件,以允许在main.py的主窗口内“看到”变量。我真的只想设置一个变量(Q1score或dvQ1)以发送到“ main.py”。

variables.py    
from tkinter import *
import numpy as np
import scoring

class Score:
    def __init__(self):
        self.Q1score = IntVar()
        self.Q1score.set(scoring.dvQ1)
        return(Q1score)

我不断收到错误消息:

Traceback (most recent call last):
  File "/usr/lib/python3.6/tkinter/__init__.py", line 1702, in __call__
    return self.func(*args)
  File "/home/nrsmoll/PycharmProjects/SeaOfScores/main.py", line 61, in print_button
    sc = var.Score()
AttributeError: module 'variables' has no attribute 'Score'

0 个答案:

没有答案