Уведомления

Группа в Telegram: @pythonsu

#1 Янв. 15, 2021 05:12:31

Sobol007
Зарегистрирован: 2021-01-15
Сообщения: 2
Репутация: +  0  -
Профиль   Отправить e-mail  

tkinter

Изучаю графическую библиотеку tkinter - в документации показано, что ее нужно вот так вызывать.
from tkinter import *

а программист который на видео объясняет как работать - вызывает библиотеку вот таким способом
import tkinter as tk

если делать по документации, то не удается разместить на окне Entry, как он показывает.

В чем разница между этими двумя объявлениями?
win = tk.TK()
calc = tk.Entry(win)

а если по документации объявить, то так не получается сделать
from tkinter import *
root=Tk()
#calc = tk.Entry(root) <— Бьет ошибку tk

Офлайн

#2 Янв. 15, 2021 05:57:52

AD0DE412
Зарегистрирован: 2019-05-12
Сообщения: 1130
Репутация: +  44  -
Профиль   Отправить e-mail  

tkinter

https://docs.python.org/3/reference/import.html
https://pythonworld.ru/osnovy/rabota-s-modulyami-sozdanie-podklyuchenie-instrukciyami-import-i-from.html



1. пжлст, форматируйте код, это в панели создания сообщений, выделите код и нажмите что то вроде
2. чтобы вставить изображение залейте его куда нибудь (например), нажмите и вставьте ссылку на его url

есчщо

Офлайн

#3 Янв. 15, 2021 09:58:25

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9715
Репутация: +  842  -
Профиль   Отправить e-mail  

tkinter

Sobol007
Изучаю графическую библиотеку tkinter - в документации показано, что ее нужно вот так вызывать.
from tkinter import *
Тогда импортируются все имена, а их там много. И ты должен их тогда все знать, чтобы случайно не перекрыть какое-нибудь из них своим классом или своей константой. Поэтому и принято использовать пространства имён. Каждое имя находится в своём пространстве имён. И даже если имена одинаковые, то пространства имён, в которых они находятся, у них разные.

Можешь импортировать так:
  
from tkinter import Tk, Entry
 
...
 
entry = Entry(...)
Но это если у тебя код маленький.

Если же код большой, то лучше симпортировать так:
  
import tkinter as tk
 
...
 
entry = tk.Entry(...)
Тогда ты можешь сделать свой класс Entry() и он не схлестнётся с tkinter.Entry (не будет коллизии имён), так как у них разные пространства имён - tk.Entry и __main__.Entry .



Отредактировано py.user.next (Янв. 15, 2021 10:01:55)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version