Добавление нескольких виджетов

dobavlenie neskolkih vidzhetov Графические интерфейсы пользователя

Настало время строить интерфейсы пользователя с несколькими виджетами. Сценарий в примере 7.17 создает окно, изображенное на рис. 7.12.

Пример 7.17. PP4E\Gui\Intro\gui4.py

from tkinter import *

def greeting():

print(‘Hello stdout world!…’)

win = Frame()

win.pack()

Label(win, text=’Hello container world’).pack(side=TOP) Button(win, text=’Hello’, command=greeting).pack(side=LEFT) Button(win, text=’Quit’, command=win.quit).pack(side=RIGHT)

win.mainloop()

Рис. 7.12. Окно с несколькими виджетами

 

Этот сценарий создает виджет Frame (еще один класс из библиотеки tkinter), к которому прикрепляются три других виджета — Label и два Button — путем передачи объекта Frame в первом аргументе. На языке tkinter это означает, что виджет Frame становится родителем для трех других виджетов. Обе кнопки этого интерфейса вызывают следующие обработчики:

     Щелчок на кнопке Hello запускает функцию greeting, определенную внутри этого файла, которая производит вывод в поток stdout.

     Щелчок на кнопке Quit вызывает стандартный метод tkinter quit, который виджет win наследует от класса Frame (Frame.quit имеет тот же эффект, что и использованный ранее метод Tk.quit).

Ниже приводится текст, который выводится в stdout при щелчке на кнопке Hello, какими бы ни были стандартные потоки ввода-вывода для этого сценария:

C:\\PP4E\Gui\Intro> python gui4.py

Hello stdout world!

Hello stdout world!

Hello stdout world!

Hello stdout world!

Понятие прикрепления виджетов к контейнерам оказывается в сердцевине всех структур в библиотеке tkinter. Однако прежде чем подробно вникать в эту тему, обсудим небольшую деталь.

Использованная литература:
Марк Лутц — Программирование на Python, 4-е издание, I том, 2011

Оцените статью
Секреты программирования
Добавить комментарий