Messagebox 'u neden tkinter 'den ayrı import ediyoruz

from tkinter import * <\code> yazmama rağmen messagebox.showinfo(“uyarı”) <\code> yazdığımda olmuyor from tkinter import messagebox <\code> yazarsam oluyor. İlk yazdığım code neden olmuyor?

Message box ayrı bir modül. Tkinterin içinde değil. Tkinterdeki dosyalara bakarsanız daha iyi anlarsınız.

bütün modülleri import modül_adı <\code> yazarak içe aktarabiliyoruz ama import messagebox <\code> yazarak içe aktarılmıyor yani bunda farklı bir şeyler var ğaliba ama çözemedim.

tkinter paketin adı import tkinter yazdığınızda paketi içindeki __init__ modülünü içeri aktarırsınız yani aslında tkinter diye bir modül yoktur. Eğer messagebox modülünü içeri aktarmak isterseniz import tkinter.messagebox diye tkinter paketinde olduğunu belirtmeniz gerekir.

1 Beğeni

yani 2 tanemi tkinter modülü var biri mesaj için diğeri widgetlar için?

Aşağıdaki resim tkinter’in bulunduğu klasöre ait. Orada gördüğünüz her bir .py dosyası bir modüldür.

Widgetler için __init__.py dosyasını kullanıyorsunuz. Yani import tkinter yazdığınızda bu __init__.py dosyası import edilmiş olur.

__init__.py modülünü şu şekilde de import edebilirsiniz:

import tkinter.__init__  # Bu yazdığımız ile,

import tkinter  # Bu yazdığımız aynı işlemi yapar.
3 Beğeni