Уведомления

Группа в Telegram: @pythonsu
  • Начало
  • » GUI
  • » Вызов tkinter и ttk по отдельности (python 3) [RSS Feed]

#1 Май 18, 2018 11:06:49

Ubhra
От:
Зарегистрирован: 2009-03-04
Сообщения: 133
Репутация: +  2  -
Профиль   Отправить e-mail  

Вызов tkinter и ttk по отдельности (python 3)

Импорт:

 from tkinter import *
from tkinter.ttk import*

Указываю явное использование виджета tkinter:
 fr_a1=tk.Frame(frame_1,bg='green')
fr_b1=tk.Frame(frame_1,bg='blue')
fr_a1.pack()
fr_b1.pack()

Ошибка:
 NameError: name 'tk' is not defined

Причем на ttk так же ругается.



Офлайн

#2 Май 18, 2018 12:27:51

rami
Зарегистрирован: 2018-01-08
Сообщения: 280
Репутация: +  71  -
Профиль   Отправить e-mail  

Вызов tkinter и ttk по отдельности (python 3)

Ubhra
Импорт:
from tkinter import *
from tkinter.ttk import*
Так нельзя импортировать, в tkinter и tkinter.ttk есть виджеты с одинаковым именем, они будут драться до кровавых соплей за первое место.

Правильно будет так:
 from tkinter import Tk,Frame
from tkinter.ttk import Style,Label
root=Tk()
Style().theme_use('default')
Style().configure('a1.TLabel',background='yellow')
fr_a1=Frame(root,bg='green',width=111,height=111)
lb_a1=Label(root,style='a1.TLabel',text='Это Label')
fr_b1=Frame(root,bg='blue',width=111,height=111)
fr_a1.pack()
lb_a1.pack()
fr_b1.pack()
root.mainloop()

или так:
 from tkinter import Tk,Label
from tkinter.ttk import Style,Frame
root=Tk()
Style().theme_use('default')
Style().configure('a1.TFrame',background='green')
Style().configure('b1.TFrame',background='blue')
fr_a1=Frame(root,style='a1.TFrame',width=111,height=111)
lb_a1=Label(root,bg='yellow',text='Это Label')
fr_b1=Frame(root,style='b1.TFrame',width=111,height=111)
fr_a1.pack()
lb_a1.pack()
fr_b1.pack()
root.mainloop()

Офлайн

#3 Май 18, 2018 14:26:14

Ubhra
От:
Зарегистрирован: 2009-03-04
Сообщения: 133
Репутация: +  2  -
Профиль   Отправить e-mail  

Вызов tkinter и ttk по отдельности (python 3)

Спасибо!
А что делать, если мне нужен общий виджет в разных местах?



Офлайн

#4 Май 18, 2018 14:56:21

rami
Зарегистрирован: 2018-01-08
Сообщения: 280
Репутация: +  71  -
Профиль   Отправить e-mail  

Вызов tkinter и ttk по отдельности (python 3)

Что такое “общий виджет” и “разные места”?

Офлайн

#5 Май 18, 2018 15:46:53

Ubhra
От:
Зарегистрирован: 2009-03-04
Сообщения: 133
Репутация: +  2  -
Профиль   Отправить e-mail  

Вызов tkinter и ttk по отдельности (python 3)

Использовать tk.Label() и ttk.Label() в одной программе.



Офлайн

#6 Май 18, 2018 16:40:41

rami
Зарегистрирован: 2018-01-08
Сообщения: 280
Репутация: +  71  -
Профиль   Отправить e-mail  

Вызов tkinter и ttk по отдельности (python 3)

Тогда так, но смысла я в этом не вижу:

 import tkinter as tk
import tkinter.ttk as ttk
root=tk.Tk()
ttk.Style().theme_use('default')
ttk.Style().configure('a1.TLabel',background='yellow')
lb_tk=tk.Label(root,bg='coral',text='Это Label "tk"')
lb_ttk=ttk.Label(root,style='a1.TLabel',text='Это Label "ttk"')
lb_tk.pack()
lb_ttk.pack()
root.mainloop()

Офлайн

  • Начало
  • » GUI
  • » Вызов tkinter и ttk по отдельности (python 3)[RSS Feed]

Board footer

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

Powered by DjangoBB

Lo-Fi Version