Уведомления

Группа в Telegram: @pythonsu

#1 Дек. 15, 2013 10:37:21

Art-master
От: Россия, Ростов-на-Дону
Зарегистрирован: 2013-06-08
Сообщения: 78
Репутация: +  1  -
Профиль   Отправить e-mail  

Scrollbar

Может, мой вопрос покажется странным, но я не могу понять, как увеличить высоту скроллбара.
В свою очередь я пробовал указать ему:

	scrollbar = tk.Scrollbar(root, orient = tk.VERTICAL, width = 100) 
	listb = tk.Listbox(root, yscrollcommand = scrollbar.set, height = 18, width = 73, bg = "#825825825", bd = 0, selectborderwidth = 0, highlightcolor = "grey")
	listb.place(x=120, y=90)
	scrollbar.config(command = listb.yview)
	scrollbar.place(x=476, y=90)
Но вместо увеличения самого скроллбара увеличивается расстояние по x от listbox.
Кто может, подскажите, что я делаю не так.

Офлайн

#2 Дек. 15, 2013 11:30:45

4kpt_II
От: Харьков
Зарегистрирован: 2013-10-24
Сообщения: 999
Репутация: +  58  -
Профиль   Отправить e-mail  

Scrollbar

Вообще - то Scrollbar с Listbox лучше паковать либо методом pack или методом grid. Там есть все механизмы для растяжения Scrollbar под размеры Listbox.

Если нужен пример - пишите.

Офлайн

#3 Дек. 15, 2013 11:38:42

Art-master
От: Россия, Ростов-на-Дону
Зарегистрирован: 2013-06-08
Сообщения: 78
Репутация: +  1  -
Профиль   Отправить e-mail  

Scrollbar

Давайте! Я уже посмотрел, в этом же разделе есть темы про удлинение скролбара, но я не могу понять, что именно надо изменить.

Офлайн

#4 Дек. 15, 2013 11:58:48

4kpt_II
От: Харьков
Зарегистрирован: 2013-10-24
Сообщения: 999
Репутация: +  58  -
Профиль   Отправить e-mail  

Scrollbar

Держите….

import Tkinter
#
root = Tkinter.Tk()
root.geometry("400x400+100+100")
root.focus_force()
#
frm = Tkinter.Frame(root)
frm.place(relx=0.5, rely=0.5, anchor="center")
#
scr = Tkinter.Scrollbar(frm)
scr.grid(row=0, column=1, sticky="ns")
#
lsb = Tkinter.Listbox(frm, width=20, height=10)
lsb.grid(row=0, column=0)
for numb in xrange(20):
    lsb.insert("end", "Поле под номером %02d" % numb)
#
lsb["yscrollcommand"] = scr.set
scr["command"] = lsb.yview
#
root.mainloop()

P.S. Обратите внимание, что для упаковки рамки и виджетов в ней я использовал разные методы. Для упаковки рамки - place, для упаковки виджетов - grid. На одном виджете упаковывать объекты разными методами нельзя. Таким образом рамка служит разграничителям для методов геометрии объектов. Фактически можно благодаря рамкам на одном root использовать хоть все три метода.
Кроме того, заметьте, что я использовал назначения свойства в виде строки:

anchor="center"

Назначать свойство в виде атрибута чуть хуже, да и принято назначать в виде строки.

Будут вопросы - пишите.

Отредактировано 4kpt_II (Дек. 15, 2013 12:07:18)

Офлайн

#5 Дек. 15, 2013 12:17:49

Art-master
От: Россия, Ростов-на-Дону
Зарегистрирован: 2013-06-08
Сообщения: 78
Репутация: +  1  -
Профиль   Отправить e-mail  

Scrollbar

Спасибо большое! Все работает!

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version