Уведомления

Группа в Telegram: @pythonsu
  • Начало
  • » GUI
  • » tkinter создание нескольких виджетов за один подход [RSS Feed]

#1 Апрель 17, 2012 17:14:57

zipsetic
Зарегистрирован: 2012-04-04
Сообщения: 29
Репутация: +  1  -
Профиль   Отправить e-mail  

tkinter создание нескольких виджетов за один подход

Почему не работает такой код?

from tkinter import *
root = Tk()
lis_but = [b1,b2,b3,b4,b5]
for i in lis_but:
    i = Button(root)
    i.pack()

Просто в программе 10 одинаковых кнопок, можно ли как-нибудь их за один раз создать?

Отредактировано zipsetic (Апрель 17, 2012 17:38:34)

Офлайн

#2 Апрель 17, 2012 17:34:19

zipsetic
Зарегистрирован: 2012-04-04
Сообщения: 29
Репутация: +  1  -
Профиль   Отправить e-mail  

tkinter создание нескольких виджетов за один подход

Думаю, проблема в том, что нужно писать вот так

 list_but = ["b1","b2","b3"]
но строке нельзя присвоить какое-нибудь значение. Как по-другому решить эту задачу?
или только так писать

from tkinter import *
root = Tk()
b1 = Button()
b2 = Button()
b3 = Button()
# ...И так 10 раз:D
Спасибо Вам за советы! Может можно как-то без цикла, а по другому…

Отредактировано zipsetic (Апрель 17, 2012 17:48:25)

Офлайн

#3 Апрель 18, 2012 01:56:03

pyuser
От:
Зарегистрирован: 2007-05-13
Сообщения: 658
Репутация: +  36  -
Профиль   Отправить e-mail  

tkinter создание нескольких виджетов за один подход

from tkinter import *
root = Tk()
buttons = {}
for i in range(10):
    tmp = Button(root)
    tmp.pack()
    buttons["b{}".format(i+1)] = tmp



Офлайн

#4 Апрель 18, 2012 13:45:27

zipsetic
Зарегистрирован: 2012-04-04
Сообщения: 29
Репутация: +  1  -
Профиль   Отправить e-mail  

tkinter создание нескольких виджетов за один подход

pyuser
from tkinter import *
root = Tk()
buttons = {}
for i in range(10):
tmp = Button(root)
tmp.pack()
buttons = tmp

Спасибо! Только мне не совсем понятна последняя строчка кода… а именно вот это:
"b{}".format
Если можете объяснить. Буду очень признателен.

Офлайн

#5 Апрель 19, 2012 03:04:54

pyuser
От:
Зарегистрирован: 2007-05-13
Сообщения: 658
Репутация: +  36  -
Профиль   Отправить e-mail  

tkinter создание нескольких виджетов за один подход

новая функция форматирования строк, можете заменить на

"b%d" % i+1



Офлайн

  • Начало
  • » GUI
  • » tkinter создание нескольких виджетов за один подход[RSS Feed]

Board footer

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

Powered by DjangoBB

Lo-Fi Version