Ich brauche Hilfe. Ich entwickelte eine Schnittstelle mit tkinter. an einem Punkt, wenn ich eine Schaltfläche in das Fenster einfügen, funktioniert es nicht wie es soll ... in der Tat, funktioniert nicht. Ich gebe mir diese Fehlermeldung, wenn ich die Taste drücken:Python 3 (.5.2) Tkinter
File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/tkinter/__init__.py", line 1550, in __call__
return self.func(*args)
File "/Users/Edoardo/Desktop/Progetti/Programming Projects/Python Projects/Encoder 1.0 alpha.py", line 277, in <lambda>
encode = Button(text="ENCODE", command=lambda: encode())
TypeError: 'Button' object is not callable
Dies ist der Code (einige Teile Ursache fehlt, bevor das gesamte Programm schreiben, möchte ich sicherstellen, dass es funktioniert):
from tkinter import *
import tkinter.messagebox
# encode = {char : code}
utf8int = {
"!": "\\33",
"\"": "\\34",
"#": "\\35",
"$": "\\36",
"%": "\\37",
"&": "\\38",
"'": "\\39",
"(": "\\40",
")": "\\41",
"*": "\\42",
"+": "\\43",
",": "\\44",
"-": "\\45",
".": "\\46",
"/": "\\47",
"0": "\\48",
"1": "\\49",
"2": "\\50",
"3": "\\51",
"4": "\\52",
"5": "\\53",
"6": "\\54",
"7": "\\55",
"8": "\\56",
"9": "\\57",
":": "\\58",
";": "\\59",
"<": "\\60",
"=": "\\61",
">": "\\62",
"?": "\\63",
"@": "\\64",
"A": "\\65",
"B": "\\66",
"C": "\\67",
"D": "\\68",
"E": "\\69",
"F": "\\70",
"G": "\\71",
"H": "\\72",
"I": "\\73",
"J": "\\74",
"K": "\\75",
"L": "\\76",
"M": "\\77",
"N": "\\78",
"O": "\\79",
"P": "\\80",
"Q": "\\81",
"R": "\\82",
"S": "\\83",
"T": "\\84",
"U": "\\85",
"V": "\\86",
"W": "\\87",
"X": "\\88",
"Y": "\\89",
"Z": "\\90",
"[": "\\91",
"\\": "\\92",
"]": "\\93",
"^": "\\94",
"_": "\\95",
"`": "\\96",
"a": "\\97",
"b": "\\98",
"c": "\\99",
"d": "\\100",
"e": "\\101",
"f": "\\102",
"g": "\\103",
"h": "\\104",
"i": "\\105",
"j": "\\106",
"k": "\\107",
"l": "\\108",
"m": "\\109",
"n": "\\110",
"o": "\\111",
"p": "\\112",
"q": "\\113",
"r": "\\114",
"s": "\\115",
"t": "\\116",
"u": "\\117",
"v": "\\118",
"w": "\\119",
"x": "\\120",
"y": "\\121",
"z": "\\122",
"{": "\\123",
"|": "\\124",
"}": "\\125",
"~": "\\126",
"€": "\\128",
"‚": "\\130",
"ƒ": "\\131",
"„": "\\132",
"…": "\\133",
"†": "\\134",
"‡": "\\135",
"ˆ": "\\136",
"‰": "\\137",
"Š": "\\138",
"‹": "\\139",
"Œ": "\\140",
"Ž": "\\142",
"‘": "\\145",
"’": "\\146",
"“": "\\147",
"”": "\\148",
"•": "\\149",
"–": "\\150",
"—": "\\151",
"˜": "\\152",
"™": "\\153",
"š": "\\154",
"›": "\\155",
"œ": "\\156",
"ž": "\\158",
"Ÿ": "\\159",
"¡": "\\161",
"¢": "\\162",
"£": "\\163",
"¤": "\\164",
"¥": "\\165",
"¦": "\\166",
"§": "\\167",
"¨": "\\168",
"©": "\\169",
"ª": "\\170",
"«": "\\171",
"¬": "\\172",
"®": "\\174",
"¯": "\\175",
"°": "\\176",
"±": "\\177",
"²": "\\178",
"³": "\\179",
"´": "\\180",
"µ": "\\181",
"¶": "\\182",
"·": "\\183",
"¸": "\\184",
"¹": "\\185",
"º": "\\186",
"»": "\\187",
"¼": "\\188",
"½": "\\189",
"¾": "\\190",
"¿": "\\191",
"À": "\\192",
"Á": "\\193",
"Â": "\\194",
"Ã": "\\195",
"Ä": "\\196",
"Å": "\\197",
"Æ": "\\198",
"Ç": "\\199",
"È": "\\200",
"É": "\\201",
"Ê": "\\202",
"Ë": "\\203",
"Ì": "\\204",
"Í": "\\205",
"Î": "\\206",
"Ï": "\\207",
"Ð": "\\208",
"Ñ": "\\209",
"Ò": "\\210",
"Ó": "\\211",
"Ô": "\\212",
"Õ": "\\213",
"Ö": "\\214",
"×": "\\215",
"Ø": "\\216",
"Ù": "\\217",
"Ú": "\\218",
"Û": "\\219",
"Ü": "\\220",
"Ý": "\\221",
"Þ": "\\222",
"ß": "\\223",
"à": "\\224",
"á": "\\225",
"â": "\\226",
"ã": "\\227",
"ä": "\\228",
"å": "\\229",
"æ": "\\230",
"ç": "\\231",
"è": "\\232",
"é": "\\233",
"ê": "\\234",
"ë": "\\235",
"ì": "\\236",
"í": "\\237",
"î": "\\238",
"ï": "\\239",
"ð": "\\240",
"ñ": "\\241",
"ò": "\\242",
"ó": "\\243",
"ô": "\\244",
"õ": "\\245",
"ö": "\\246",
"÷": "\\247",
"ø": "\\248",
"ù": "\\249",
"ú": "\\250",
"û": "\\251",
"ü": "\\252",
"ý": "\\253",
"þ": "\\254",
"ÿ": "\\255",
"Ā": "\\256",
"ā": "\\257",
"Ă": "\\258",
"ă": "\\259",
"Ą": "\\260",
"ą": "\\261",
"Ć": "\\262",
"ć": "\\263",
"Ĉ": "\\264",
"ĉ": "\\265",
"Ċ": "\\266",
"ċ": "\\267",
"Č": "\\268",
"č": "\\269",
"Ď": "\\270",
"ď": "\\271",
"Đ": "\\272",
"đ": "\\273"
}
utf8hex = {
}
Ascii = {
}
binary = {
}
root = Tk()
root.resizable(0, 0)
root.title("Encoder 1.0 (Alpha)")
v = IntVar()
infoLabel = Label(text="This is an encoder, please choose the encode type and enter a message ")
infoLabel.grid(column=1, columnspan=3, row=1)
RB_UTF8_int = Radiobutton(text="UTF-8 (int)", variable=v, value="utf-8 int")
RB_UTF8_int.grid(column=1, row=2)
RB_UTF8_hex = Radiobutton(text="UTF-8 (hex)", variable=v, value="utf-8 hex")
RB_UTF8_hex.grid(column=2, row=2)
RB_Ascii = Radiobutton(text="Ascii", variable=v, value="Ascii")
RB_Ascii.grid(column=1, row=3)
RB_UTF16 = Radiobutton(text="Binary", variable=v, value="binary")
RB_UTF16.grid(column=2, row=3)
message = Entry()
message.grid(column=1, columnspan=4, row=4)
encode = Button(text="ENCODE", command=lambda: encode())
encode.grid(column=1, columnspan=4, row=5)
root.mainloop()
def encode():
errors = 0
decoded_message = []
encoded_message = []
for i in message.get():
decoded_message.append(i)
if message.get() != "":
if v == "utf-8 int":
for i in decoded_message:
for char, code in utf8int:
if char == i:
encoded_message.append(code)
else:
encoded_message.append("(error)")
errors += 1
pass
decoded_message1 = str(decoded_message)
decoded_message2 = decoded_message1.replace("[", "")
decoded_message3 = decoded_message2.replace("]", "")
decoded_message4 = decoded_message3.replace(", ", "")
decoded_message5 = decoded_message4.replace("'", "")
if tkinter.messagebox.askyesno(title="Succesfully Generated", message="Your code is succesfully "
"generated\n"
"with"+str(errors)+"errors.\n"
"This is your code:\n" +
decoded_message5 +
"Copy it on the clipboard?"):
root.clipboard_clear()
root.clipboard_append(decoded_message5)
else:
pass
elif v == "utf-8 hex":
for i in decoded_message:
for char, code in utf8hex:
if char == i:
encoded_message.append(code)
else:
errors += 1
pass
elif v == "Ascii":
for i in decoded_message:
for char, code in Ascii:
if char == i:
encoded_message.append(code)
else:
errors += 1
pass
elif v == "binary":
for i in decoded_message:
for char, code in binary:
if char == i:
encoded_message.append(code)
else:
errors += 1
pass
else:
tkinter.messagebox.showerror(title="FATAL ERROR", message="Please, select an encode type.")
else:
tkinter.messagebox.showerror(title="ERROR 404", message="ERROR 404: message not found!")
Wenn Sie _only_ 'root.mainloop()' verschieben, erhalten Sie 'NameError', da die Funktion, die Sie aufrufen möchten, zu diesem Zeitpunkt nicht definiert ist. Deshalb habe ich gesagt "Sie sollten Ihre Funktionsdefinition über" verschieben, die sowohl NameError als auch Mainloop löst. – Lafexlos
Es wird kein "naemerror" verursacht, da der Code in einen "Lambda" -Ausdruck eingeschlossen ist: er wird nur zu "click time" ausgewertet. – jsbueno
Oh schießen. Das komplett verpasst. Du hast recht, Entschuldigung. :) – Lafexlos