سؤال

أحاول استخدام طريقة استدعاء 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 وبالطبع ستكون النتائج مختلفة تماما! -)

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top