TypeError: can only concatenate str (not "function") to str?

2 Antworten

Vom Fragesteller als hilfreich ausgezeichnet

Das liegt an dieser Zeile:

Ausg = ctk.CTkEntry(neuw, placeholder_text=("         ") + listener, width=900, font=("Helvetica", 20))

listener ist eine Funktion (die nebenbei auch noch selbst wenn du sie an dieser Stelle aufrufen würdest None zurückgäbe, aber auch nur dann, wenn du exakt einen Parameter an sie übergibst).

Und auch innerhalb dieser Funktion befinden sich einige Referenzen auf listener, die so absolut keinen Sinn ergeben.


amjnn 
Fragesteller
 20.05.2024, 17:00

danke für die antwort was könnte ich anstatt listener hintun ich möchte die ausgabe von dev listener Angezeigt bekommen wie würde ich das machen besser gesagt was würden sie machen?

0
smiregal8472  20.05.2024, 17:19
@amjnn
was würden sie machen?

Das (bzw. zumindest etwas in der Art):

from mailtm import *
import customtkinter as ctk


class mailtm_gui(ctk.CTk):
    def __init__(self):
        ctk.CTk.__init__(self)
        self.geometry('500x320')
        self.title('Temp mail By Amjn')
        listener = Email()
        listener.register()
        emaila = ctk.CTkEntry(self, placeholder_text=listener.address, width=900, font=('Helvetica', 20))
        emaila.configure(state='readonly')
        emaila._corner_radius = 10
        emaila.pack()
        listener.start(_new_mail, interval=3)

    def _new_mail(self, message):
        mail_window = ctk.CTkToplevel(self)
        mail_window.title('New Mail: ' + message['subject'])
        mail_window.geometry('500x320')
        mail_window.corner_radius = 30
        mail_window.resizable(width=True, height=True)
        mail_body = ctk.CTkEntry(mail_window, placeholder_text='Subject: ' + message['subject'] + '\nBody: ' + (message['text'] if message['text'] else message['html']), width=900, font=('Helvetica', 20))
        mail_body.pack()


if __name__ == '__main__':
    main = mailtm_gui()
    main.mainloop()

1
amjnn 
Fragesteller
 20.05.2024, 17:52
@smiregal8472

Danke sehr nett,

danke für ihre zeit und Hilfe.

0

Du hast nicht angegeben in welcher Zeile der Fehler ist aber ich vermute mal dass dies hier das Problem ist:

Ausg = ctk.CTkEntry(neuw, placeholder_text=("         ") + listener, width=900, font=("Helvetica", 20))
    Ausg.pack()

listener ist kein String, du behanndelst die Funktion aber wie einen String

("         ") + listener

Die Klammern um " " sind übrigens überflüssig.


amjnn 
Fragesteller
 20.05.2024, 17:03

danke für die antwort was könnte ich anstatt listener hintun ich möchte die ausgabe von dev listener Angezeigt bekommen wie würde ich das machen besser gesagt was würden sie machen? danke für die antwort was könnte ich anstatt listener hintun ich möchte die ausgabe von dev listener Angezeigt bekommen wie würde ich das machen besser gesagt was würden sie machen?

0