Dalam Tkinter, ralat biasa yang dihadapi ialah "AttributeError: NoneType object has no attribute." Untuk memahami ralat ini, kita mesti memahami gelagat fungsi grid, pek dan tempat yang digunakan untuk reka letak widget.
Ralat berlaku apabila anda cuba mengakses atribut widget yang belum dimulakan atau dibentangkan dengan betul. Fungsi grid, pek dan letak widget Tkinter, termasuk Entri, kembalikan Tiada. Apabila anda melaksanakan kaedah pada widget, hasil ungkapan ditentukan oleh nilai pulangan kaedah tersebut.
Sebagai contoh, dalam coretan kod yang disediakan:
entryBox = Entry(root, width=60).grid(row=2, column=1, sticky=W)
Kod mencipta widget Kemasukan dan cuba menetapkan susun aturnya menggunakan kaedah grid. Walau bagaimanapun, memandangkan grid mengembalikan Tiada, entryBox berkesan menjadi Tiada. Akibatnya, apabila anda cuba mengakses atribut get()nya kemudian dalam kod:
print(entryBox.get())
Anda akan menghadapi ralat kerana Tiada yang tidak mempunyai atribut get().
Untuk menyelesaikan isu ini, anda harus memisahkan penciptaan dan reka letak widget kepada dua baris berbeza:
entryBox = Entry(root, width=60) entryBox.grid(row=2, column=1, sticky=W)
Ini memastikan bahawa Entri widget dimulakan dengan betul dan rujukan disimpan dengan betul dalam entryBox, membolehkan anda mengakses atributnya tanpa menemui ralat "NoneType object has no attribute".
Atas ialah kandungan terperinci Mengapa Kod Tkinter Saya Melemparkan Ralat 'AttributeError: NoneType object has no attribute'?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!