Отображение главного окна

Ну и наконец, главное окно тоже не появится, пока не будет вызван специальный метод mainloop:

root.mainloop()

Данная строчка кода должна быть всегда в конце скрипта!

В итоге, код программы может выглядеть таким образом:

from tkinter import *

def printer(event):

print ("Как всегда очередной 'Hello World!'")

root = Tk()

but = Button(root)

but["text"] = "Печать"

but.bind("<Button-1>",printer)

but.pack()

root.mainloop()

При программировании графического интерфейса пользователя более эффективным оказывается объектно-ориентированный подход. Поэтому многие «вещи» оформляются в виде классов. В нашем примере также можно использовать класс:

from tkinter import *

class But_print:

def __init__(self):

self.but = Button(root)

self.but["text"] = "Печать"

self.but.bind("<Button-1>",self.printer)

self.but.pack()

def printer(self,event):

print ("Как всегда очередной 'Hello World!'")

root = Tk()

obj = But_print()

root.mainloop()

Практическая работа

  1. Импортируйте модуль tkinter, создайте объект главного окна, примените к нему метод mainloop. Затем выполните скрипт. Что вы видите?
  2. Добавьте кнопку на главное окно с помощью такой команды:

but = Button(root, text="Печать")
В данном случае, при создании кнопки, в класс сразу передается и значение свойства text. Это наиболее часто используемый способ установки свойств (по-сравнению с тем, который приводится в уроке: but["text"] = "Печать").

  1. Расположите виджету на главном окне с помощью метода pack. Запустите скрипт. Что вы видите? Нажмите левой кнопкой мыши на кнопку в окне. Что-нибудь происходит?
  2. Создайте какую-нибудь функцию и свяжите ее с событием нажатия кнопки.
  3. Снова запустите скрипт и нажмите кнопку. По идее, должно что-то произойти.

Виджеты (графические объекты) и их свойства. Часть 1. Урок 2

На этом уроке рассмотрим часть графических объектов (виджет), содержащихся в библиотеке Tkinter: кнопки, поля для ввода, метки, флажки, переключатели и списки. Следует понимать, что графический интерфейс пользователя достаточно стандартен, и поэтому любые подобные библиотеки-модули (в том числе и Tkinter) содержат приблизительно одинаковые виджеты.

Каждый класс виджет имеет определенные свойства, значения которых можно задавать при их создании, а также программировать их изменение при действии пользователя и в результате выполнения программы.

Кнопки

Объект-кнопка создается вызовом класса Button модуля tkinter. При этом обязательным аргументом является лишь родительский виджет (например, окно верхнего уровня). Другие свойства могут указываться при создании кнопки или задаваться (изменяться) позже. Синтаксис:

переменная = Button (родит_виджет, [свойство=значение, … ….])

У кнопки много свойств, в примере ниже указаны лишь некоторые из них.

from tkinter import *

root = Tk()

but = Button(root,

text="Это кнопка", #надпись на кнопке

width=30,height=5, #ширина и высота

bg="white",fg="blue") #цвет фона и надписи

but.pack()

root.mainloop()

bg и fg – это сокращения от background (фон) и foreground (передний план). Ширина и высота измеряются в знакоместах (количество символов).

Метки

Метки (или надписи) — это достаточно простые виджеты, содержащие строку (или несколько строк) текста и служащие в основном для информирования пользователя.

lab = Label(root, text="Это метка! \n Из двух строк.", font="Arial 18")


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: