2017-05-14 3 views
0

Ich schreibe für ein Schulprojekt und habe versucht, tkinter in meinem Code zu verwenden, aber es kam immer wieder zu einem Fehler. Ich verwende einen Mac Laptop und die PyCharm SchnittstelletkSimpleDialog pycharm

Traceback (most recent call last): 
    File "/Users/-----/Desktop/python/Tkinter turtle obstacle.py", line 20, in <module> 
    color1()#does it automatically 
    File "/Users/-----/Desktop/python/Tkinter turtle obstacle.py", line 8, in color1 
    ac1 = Sd("Color Selector", 'Enter the color of the turtle') 
TypeError: 'module' object is not callable 

Hier ist mein Code, es ist nur ein einfaches Projekt zu testen, bevor ich in die endgültigen vertiefen, aber ich kann es nicht bekommen, kann jemand bitte sagen Sie mir, was ist los damit:

import turtle    # 1. import the modules 
import random 
import Tkinter as tk 
import tkSimpleDialog as Sd 
def color1(): 
    ac1 = Sd("Color Selector", 'Enter the color of the turtle') 
    steve.color(ac1) 
    print(5) 
def color2(): 
    ac2 = Sd("Color Selector", 'Enter the color of the obstacle') 
    sam.color(ac2) 
root = tk.Tk() 
wn = turtle.Screen()  # 2. Create a screen 
wn.bgcolor('white') 

steve = turtle.Turtle() # 3. Create two turtles 
sam = turtle.Turtle() 
color1()#does it automatically 
color2() 
red = tk.Button(root, text = "Enter String", command = color1)#this puts it on a button click 
blue = tk.Button(root, text = "Enter String", command = color2) 
red.grid(row=0,column=0) 
blue.grid(row=1,column=0) 
steve.shape('turtle') 
sam.shape('circle') 

steve.speed(1) 
sam.speed(1) 
steve.pensize(5) 
sam.pensize(25) 
sam.penup() 
sam.pendown() 
steve.penup() 

steve.goto(-300,0) 
sam.goto(0,0) 

b = True 
while b is True: 
    steve.pendown() 
    steve.forward(20) 
    if steve.xcor() == sam.xcor() -40: 
     steve.left(90) 
     steve.forward(30) 
     steve.right(90) 
    if steve.xcor() == sam.xcor() +40: 
     steve.right(90) 
     steve.forward(30) 
     steve.left(90) 
    if steve.xcor() == 200: 
     steve.write('Obstacle Avoided', font=('Arial', 20, "bold")) 
     break 

wn.exitonclick() 

Antwort

1

tkSimpleDialog ist ein Modul, keine Klasse. Wahrscheinlich möchten Sie in diesem Modul eine Instanz einer Klasse erstellen.

Suchen Sie nach den Klassen im Modul und verwenden Sie die richtige Klasse zum Erstellen der Instanz.

+0

was meinst du damit @ paperazzo79 – Loi

+0

es funktioniert immer noch nicht mit Klassen und Instanzen – Loi