سؤال
أحاول استخدام طريقة استدعاء TTK.Button، كما هو موضح في tkdocs. (ينظر الى "دعوة القيادة")، لكنني أتلقى هذا الخطأ:
AttributeError: "Nonetype" كائن ليس لديه سمة "استدعاء"
لذلك، حاولت هذا في قذيفة التفاعلية:
ActivePython 3.1.1.2 (ActiveState Software Inc.) based on
Python 3.1.1 (r311:74480, Aug 17 2009, 12:30:13) [MSC v.1500 32 bit (Intel)] on
win32
>>> from tkinter import *
>>> import tkinter.ttk as ttk
>>> root = Tk()
>>> button = ttk.Button(root, text="Test").grid(row=0, column=0)
>>> print(button)
None
مما يدل على أن TTK.Button يعود لا شيء.
هو ttk.button يعني العودة لا شيء. وإذا كان الأمر كذلك، لماذا يقول TKDocs أن هناك طريقة استدعاء؟
المحلول
لا، أنت مخطئ تماما: التعليمات البرمجية الخاصة بك ليس اظهر ذلك ttk.Button
عائدات None
- هذا يظهر أن grid
طريقة على إرجاع كائن الزر None
في ألا ترى أنك تتصل .grid
على كل ما هو ذلك ttk.Button
إرجاع (كائن الزر)، وهذه نتيجة لذلك جريد اتصل بأنت تقوم بتعيين "زر"؟!
لذلك تفعل ذلك بشكل صحيح بدلا من ذلك ...:
button = ttk.Button(root, text="Test")
button.grid(row=0, column=0)
الآن انت تستطيع print button
وبالطبع ستكون النتائج مختلفة تماما! -)
لا تنتمي إلى StackOverflow