Найти - Пользователи
Полная версия: tkinter создание нескольких виджетов за один подход
Начало » GUI » tkinter создание нескольких виджетов за один подход
1
zipsetic
Почему не работает такой код?

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

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

from tkinter import *
root = Tk()
b1 = Button()
b2 = Button()
b3 = Button()
# ...И так 10 раз:D
Спасибо Вам за советы! Может можно как-то без цикла, а по другому…
pyuser
from tkinter import *
root = Tk()
buttons = {}
for i in range(10):
    tmp = Button(root)
    tmp.pack()
    buttons["b{}".format(i+1)] = tmp
zipsetic
pyuser
from tkinter import *
root = Tk()
buttons = {}
for i in range(10):
tmp = Button(root)
tmp.pack()
buttons = tmp

Спасибо! Только мне не совсем понятна последняя строчка кода… а именно вот это:
"b{}".format
Если можете объяснить. Буду очень признателен.
pyuser
новая функция форматирования строк, можете заменить на
"b%d" % i+1
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB