سؤال

ولقد حصلت على التطبيق الثعبان GUI في عمل، وهو ما تنوي استخدام على كل من ويندوز وماك. وثائق عن Tkinter ليست أعظم، وجوجل فو فشل لي.

وباختصار، أنا أفعل:

c = Canvas(
    master=frame,
    width=settings.WINDOW_SIZE[0],
    height=settings.WINDOW_SIZE[1],
    background=settings.CANVAS_COLOUR
)
file = PhotoImage(file=os.path.join('path', 'to', 'gif'))
c.create_bitmap(position, image=file)
c.pack()
root.mainloop()

إذا كنت التعليق خارج خط create_bitmap، يرسمه التطبيق على ما يرام. إذا أعلق عليه مرة أخرى، أحصل على الخطأ التالي:

و_tkinter.TclError: unknown option "-image"

ما هو الغريب. Tkinter هو على ما يرام، وفقا لاختبارات الثعبان (أي استيراد _tkinter، Tkinter، وتفعل Tk()). لقد قمت منذ PIL تثبيت ضد نافذتي الإعداد (XP SP3، بيثون 2.6) تخيل أنه كان يفعل بعض من رفع الأحمال الثقيلة في مستوى منخفض. لا يبدو أن يكون. أنا لا تزال تحصل على الخطأ المذكور.

وتتبع مكدس الذاكرة المؤقتة الكامل، باستثناء رمز لقد لصق بالفعل، هو:

File "C:\Python26\lib\lib-tk\Tkinter.py", line 2153, in create_bitmap
return self._create('bitmap', args, kw)
File "C:\Python26\lib\lib-tk\Tkinter.py", line 2147, in _create
*(args + self._options(cnf, kw))))

وأي شخص قادرا على تسليط أي ضوء؟

هل كانت مفيدة؟

المحلول

وتاكا لديها نوعين من الرسوم البيانية والصور النقطية والصور. الصور تأتي في اثنين من النكهات، نقطية والصورة. الصور النقطية والصور النقطية من نوع ليست هي نفس الشيء، الأمر الذي يؤدي إلى الارتباك في مستندات. PhotoImage يخلق صورة من نوع الصورة، ويحتاج كائن الصورة في قماش، وبالتالي فإن الحل هو، كما أبرمت بالفعل، لاستخدام create_image.

نصائح أخرى

والجواب باختصار: لا تستخدم create_bitmap عندما تقصد استخدام create_image.

وليس لديها طريقة create_bitmap() حجة image. أنه يحتوي على bitmap الحجة بدلا من ذلك.

والخطأ تحصل يأتي من حقيقة أنه في Tkinter، يشغل جزءا لا يتجزأ مترجم تى سى ال في عملية بيثون، وجميع التفاعل GUI يذهب ذهابا وإيابا بين بيثون وتى سى ال، لذلك، الخطأ تحصل يأتي من حقيقة أن تى سى ال الردود "أنا لا أعرف أي خيار، صورة في .create_bitmap الاتصال".

في أي حال، مثل وقال جيف، وربما كنت تريد طريقة create_image.

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