Saya mencoba memasukkan fungsi dengan parameter tanpa memanggilnya dengan menggunakan lambda tetapi saya menemukan kesalahan, apakah Anda tahu mengapa?

Berikut fungsinya:

accountName = ""
accountPassword = ""

def switchScreenState(newState,username,password):
    screenState = newState
    if username != None & password != None:
        accountName = username
        accountPassword = password

Yang saya coba lakukan hanyalah mengubah nilai accountName dan accountPassword untuk kode saya.

Di sinilah saya mencoba menuliskannya:

hashtagB = tk.Button(mainWindow, text="Automation by Hashtags", bg="blue", width=20, command=lambda _: switchScreenState("hashtag selection",usernameEntry.get(),passwordEntry.get()))
hashtagB.place(relx=0.5, rely=0.40, anchor="center")

Dan inilah dari mana saya mengambil nilai-nilai baru:

usernameEntry = tk.Entry(mainWindow, width=30)
usernameCanvas.place(relx=0.5, rely=0.20, anchor="center")

passwordEntry = tk.Entry(mainWindow, width=30)
passwordEntry.place(relx=0.5, rely=0.32, anchor="center")

Terima kasih banyak sebelumnya :)

0
Efe FRK 11 Mei 2021, 11:51

1 menjawab

Jawaban Terbaik

Alasan Anda mendapatkan kesalahan (di masa mendatang harap posting traceback dalam pertanyaan juga) adalah bahwa tombol tkinter membutuhkan command untuk berfungsi tanpa argumen. Jadi jatuhkan garis bawah dalam kode Anda.

hashtagB = tk.Button(mainWindow, text="Automation by Hashtags", bg="blue", width=20, command=lambda: switchScreenState("hashtag selection", usernameEntry.get(), passwordEntry.get()))

Perhatikan juga bahwa lebih baik untuk memeriksa None dengan cara berikut dan menggunakan and ketika Anda tidak bermaksud operasi bit:

if username is not None and password is not None:
2
SUTerliakov 11 Mei 2021, 09:02