Создание окна по центру и кнопка выхода в tkinter

Создание всплывающего окна с сообщением

Чтобы показать всплывающее окно с помощью Tkinter, используйте следующим образом:

Довольно легко! Давайте покажем окно сообщений при нажатии на кнопку пользователем.

Показ сообщений о предупреждениях и ошибках

Вы можете показать предупреждающее сообщение или сообщение об ошибке таким же образом. Единственное, что нужно изменить—это функция сообщения.

Показ диалоговых окон с выбором варианта

Чтобы показать пользователю сообщение “да/нет”, вы можете использовать одну из следующих функций :

Вы можете выбрать соответствующий стиль сообщения согласно вашим потребностям. Просто замените строку функции на одну из предыдущих и запустите скрипт. Кроме того, можно проверить, какая кнопка нажата, используя переменную результата.

Если вы кликнете OK, yes или retry, значение станет True, а если выберете no или cancel, значение будет False. Единственной функцией, которая возвращает одно из трех значений, является функция ; она возвращает True/False/None.

Куда пойти отсюда?

Достаточно теории, давайте познакомимся!

Чтобы стать успешным в кодировке, вам нужно выйти туда и решать реальные проблемы для реальных людей. Вот как вы можете легко стать шестифункциональным тренером. И вот как вы польские навыки, которые вам действительно нужны на практике. В конце концов, что такое использование теории обучения, что никто никогда не нуждается?

Практические проекты – это то, как вы обостряете вашу пилу в кодировке!

Вы хотите стать мастером кода, сосредоточившись на практических кодовых проектах, которые фактически зарабатывают вам деньги и решают проблемы для людей?

Затем станьте питоном независимым разработчиком! Это лучший способ приближения к задаче улучшения ваших навыков Python – даже если вы являетесь полным новичком.

Присоединяйтесь к моему бесплатным вебинаре «Как создать свой навык высокого дохода Python» и посмотреть, как я вырос на моем кодированном бизнесе в Интернете и как вы можете, слишком от комфорта вашего собственного дома.

Присоединяйтесь к свободному вебинару сейчас!

Я профессиональный Python Blogger и Content Creator. Я опубликовал многочисленные статьи и создал курсы в течение определенного периода времени. В настоящее время я работаю полный рабочий день, и у меня есть опыт в областях, таких как Python, AWS, DevOps и Networking.

Вы можете связаться со мной @:

  • Заработка
  • Linkedin.

Python 2 ≤ 2.7.8 и Python 3 ≤ 3.3

полет в лицо его ‘включено’ девиз, Python поставляется без менеджера пакетов. Что еще хуже, Пип был-до недавнего времени-по иронии судьбы трудно установить.

должностные инструкции

в :

скачать , будучи осторожны, чтобы сохранить его как , а не . Затем запустите его из командной строки:

для этого вам, возможно, понадобится командная строка администратора. Следуйте за Запустите командную строку как администратор (Microsoft TechNet).

это устанавливает пакет pip, который (в Windows) содержит …\Скрипты\типун.exe этот путь должен быть в переменной среды PATH для использования pip из командной строки (см. Вторую часть «альтернативных инструкций» для добавления его в свой путь,

альтернативные инструкции

официальная документация сообщает пользователям установить Pip и каждую из его зависимостей от источника. Это утомительно для опытных и непомерно сложно для новичков.

ради нас, Кристоф Гольке подготовка установщиков Windows () для популярных пакетов Python. Он создает установщики для всех версий Python, как 32, так и 64 бит. Вам нужно:

для меня это установленный Pip в . Найти на вашем компьютере, затем добавьте его папку (например,) к вашему пути (запуск / редактирование переменных среды). Теперь вы должны быть в состоянии работать из командной строки. Попробуйте установить пакет:

там вы идете (надеюсь)! Решения общих проблем приведены ниже:

проблемы с прокси

если вы работаете в офисе, вы можете находиться за HTTP-прокси. Если это так, установите переменные среды и . Большинство приложений Python (и других свободных программ) уважают их. Синтаксис:

Если вам действительно не повезло, ваш прокси может быть Microsoft NTLM прокси. Свободные программы не справляются. Единственное решение-установить бесплатный программный прокси-сервер, который перенаправляет на неприятный прокси-сервер. http://cntlm.sourceforge.net/

не удалось найти vcvarsall.летучая мышь!—46—>

модули Python могут быть частично написаны на C или c++. Pip пытается скомпилировать из исходного кода. Если у вас нет установленного и настроенного компилятора C / C++, вы увидите это загадочное сообщение об ошибке.

вы можете исправить это путем установка компилятора C++ например MinGW или . Microsoft фактически поставляется специально для использования С Python. Или попробуйте компилятор Microsoft Visual C++ для Python 2.7.

Пример создания диалогового окна в Tkinter

Следующий пример создает диалоговое окно, используя менеджер геометрии grid.

windows.py

Python

from tkinter import Tk, Text, BOTH, W, N, E, S
from tkinter.ttk import Frame, Button, Label, Style

class Example(Frame):

def __init__(self):
super().__init__()
self.initUI()

def initUI(self):

self.master.title(«Диалоговое окно в Tkinter»)
self.pack(fill=BOTH, expand=True)

self.columnconfigure(1, weight=1)
self.columnconfigure(3, pad=7)
self.rowconfigure(3, weight=1)
self.rowconfigure(5, pad=7)

lbl = Label(self, text=»Окна»)
lbl.grid(sticky=W, pady=4, padx=5)

area = Text(self)
area.grid(row=1, column=0, columnspan=2, rowspan=4, padx=5, sticky=E+W+S+N)

abtn = Button(self, text=»Активир.»)
abtn.grid(row=1, column=3)

cbtn = Button(self, text=»Закрыть»)
cbtn.grid(row=2, column=3, pady=4)

hbtn = Button(self, text=»Помощь»)
hbtn.grid(row=5, column=0, padx=5)

obtn = Button(self, text=»Готово»)
obtn.grid(row=5, column=3)

def main():

root = Tk()
root.geometry(«350×300+300+300»)
app = Example()
root.mainloop()

if __name__ == ‘__main__’:
main()

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50

fromtkinterimportTk,Text,BOTH,W,N,E,S

fromtkinter.ttkimportFrame,Button,Label,Style

classExample(Frame)

def__init__(self)

super().__init__()

self.initUI()

definitUI(self)

self.master.title(«Диалоговое окно в Tkinter»)

self.pack(fill=BOTH,expand=True)

self.columnconfigure(1,weight=1)

self.columnconfigure(3,pad=7)

self.rowconfigure(3,weight=1)

self.rowconfigure(5,pad=7)

lbl=Label(self,text=»Окна»)

lbl.grid(sticky=W,pady=4,padx=5)

area=Text(self)

area.grid(row=1,column=,columnspan=2,rowspan=4,padx=5,sticky=E+W+S+N)

abtn=Button(self,text=»Активир.»)

abtn.grid(row=1,column=3)

cbtn=Button(self,text=»Закрыть»)

cbtn.grid(row=2,column=3,pady=4)

hbtn=Button(self,text=»Помощь»)

hbtn.grid(row=5,column=,padx=5)

obtn=Button(self,text=»Готово»)

obtn.grid(row=5,column=3)

defmain()

root=Tk()

root.geometry(«350×300+300+300»)

app=Example()

root.mainloop()

if__name__==’__main__’

main()

В этом примере мы использовали виджет ярлыка, текстовой виджет и четыре кнопки.

Python

self.columnconfigure(1, weight=1)
self.columnconfigure(3, pad=7)
self.rowconfigure(3, weight=1)
self.rowconfigure(5, pad=7)

1
2
3
4

self.columnconfigure(1,weight=1)

self.columnconfigure(3,pad=7)

self.rowconfigure(3,weight=1)

self.rowconfigure(5,pad=7)

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

Python

lbl = Label(self, text=»Окна»)
lbl.grid(sticky=W, pady=4, padx=5)

1
2

lbl=Label(self,text=»Окна»)

lbl.grid(sticky=W,pady=4,padx=5)

Виджет ярлыка также создается и помещается в сетку. Если не указываются ряд и столбец, тогда он займет первый ряд и столбец. Ярлык закрепляется у западной части окна и имеет определенные отступы вокруг своих границ.

Python

area = Text(self)
area.grid(row=1, column=0, columnspan=2, rowspan=4,
padx=5, sticky=E+W+S+N)

1
2
3

area=Text(self)

area.grid(row=1,column=,columnspan=2,rowspan=4,

padx=5,sticky=E+W+S+N)

Создается текстовый виджет и помещается во второй ряд и первый столбец. Он охватывает два столбца и четыре строки.

Между виджетом и левым краем корневого окна присутствует пространство в 4 пикселя. Также, виджет закреплен около всех четырех сторон. Поэтому, когда окно расширяется, виджеты текстов увеличиваются во всех направлениях.

Python

abtn = Button(self, text=»Активир.»)
abtn.grid(row=1, column=3)

cbtn = Button(self, text=»Закрыть»)
cbtn.grid(row=2, column=3, pady=4)

1
2
3
4
5

abtn=Button(self,text=»Активир.»)

abtn.grid(row=1,column=3)

cbtn=Button(self,text=»Закрыть»)

cbtn.grid(row=2,column=3,pady=4)

Эти две кнопки находятся возле текстового виджета.

Python

hbtn = Button(self, text=»Помощь»)
hbtn.grid(row=5, column=0, padx=5)

obtn = Button(self, text=»Готово»)
obtn.grid(row=5, column=3)

1
2
3
4
5

hbtn=Button(self,text=»Помощь»)

hbtn.grid(row=5,column=,padx=5)

obtn=Button(self,text=»Готово»)

obtn.grid(row=5,column=3)

Эти две кнопки находятся под текстовым виджетом. Кнопка «Помощь» расположена в первом столбце, а кнопка «Готово» в последнем столбце.В этой части изучения Tkinter мы рассказали о работе с разметкой виджетов.

Модуль filedialog – диалоговые окна открытия и сохранения файлов

Рассмотрим две функции из модуля – и . Первая предоставляет диалоговое окно для открытия файла, вторая – для сохранения. Обе возвращают имя файла, который должен быть открыт или сохранен, но сами они его не открывают и не сохраняют. Делать это уже надо программными средствами самого Python.

from tkinter import *
from tkinter import filedialog as fd
 
 
def insert_text():
    file_name = fd.askopenfilename()
    f = open(file_name)
    s = f.read()
    text.insert(1.0, s)
    f.close()
 
 
def extract_text():
    file_name = fd.asksaveasfilename(
        filetypes=(("TXT files", "*.txt"),
                   ("HTML files", "*.html;*.htm"),
                   ("All files", "*.*")))
    f = open(file_name, 'w')
    s = text.get(1.0, END)
    f.write(s)
    f.close()
 
 
root = Tk()
text = Text(width=50, height=25)
text.grid(columnspan=2)
b1 = Button(text="Открыть", command=insert_text)
b1.grid(row=1, sticky=E)
b2 = Button(text="Сохранить", command=extract_text)
b2.grid(row=1, column=1, sticky=W)
 
root.mainloop()
 

Опция позволяет перечислить типы файлов, которые будут сохраняться или открываться, и их расширения.

Примечание. В приведенном коде при размещении текстового поля методом не указаны аргументы и . В таких случаях подразумевается, что их значениями являются нули.

Установка PIP на Windows

◈ Шаг 1: Скачать PIP

Первое и прежде всего требование иметь возможность установить PIP в Windows – Скачать get-pip.py Файл в папку в вашей системе. Вы можете скачать get-pip.py Файл из ссылки, приведенной ниже.

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

curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py

Для более старых версий Python вы можете использовать следующую ссылку: Papaya.org.

Возможно, вам придется запустить Командная строка Windows в Администратор Режим, чтобы вы могли правильно установить PIP в вашей системе. Давайте посмотрим на шаги, чтобы запустить командную строку в вашей системе.

Нажмите клавишу Windows + X на клавиатуре.

Тип cmd.exe в диалоговом окне запуска

Кроме того, вы можете ввести CMD В панели поиска Windows и нажмите на команда командной строки икона. Чтобы открыть командную строку в режиме администратора, щелкните правой кнопкой мыши значок командной строки и нажмите «Запустить как администратор».

◈ Шаг 2: Установка PIP

После того, как вы открыли командную строку, перейдите в местоположение/папку, в которую вы скачали и сохранили get-pip.py файл. Используйте команду, приведенную ниже, чтобы установить PIP.

python get-pip.py

Установка должна начинаться, как только вы введете вышеуказанную команду, при условии, что вы указали правильный путь/местоположение get-pip.py файл.

◈ Шаг 3: Добавление PIP в переменные среды Windows

Вы можете столкнуться с проблемами даже после успешной установки PIP. Это потому, что Python не может найти инструмент, который вы пытаетесь запустить в текущем каталоге. Следовательно, вы должны перейти к каталогу/местоположению, где вы установили инструмент каждый раз, когда вы хотите запустить команду, чтобы запустить ее. Но это проблематично, и вы хотели бы иметь возможность запустить его из любого места.

Чтобы убедиться, что вы можете запустить PIP из любого желаемого местоположения, вам необходимо добавить путь к каталогу, где PIP установлен как переменная среды пути в Windows. Следуйте инструкциям, приведенным ниже, чтобы добавить переменную среды WIP в Windows:

  1. Открыть Панель управления ➨ Перейти к Система и безопасность ➨ система
  2. Нажмите на Усовершенствованные настройки системы Отказ
  3. Нажмите Переменные среды Отказ
  4. Дважды щелкните переменную Путь Под системными переменными.
  5. Нажмите на Новый ➨ Добавить расположение каталога, в котором установлен PIP ➨ SELECT ОК.

◈ Шаг 4: Проверка установки PIP

Для проверки, если PIP был успешно установлен в системе, используйте Команда в командной строке, как упоминается ранее в этой статье.

Вы также можете проверить версию PIP, установленную в вашей системе, используя следующую команду.

pip --version

Ввод данных с помощью класса Entry (текстовое поле Tkinter)

В предыдущих примерах графического интерфейса Python мы рассмотрели, как добавлять простые виджеты. Теперь давайте попробуем получить данные от пользователя, используя класс Tkinter Entry (текстовое поле Tkinter).

Вы можете создать текстовое поле с помощью класса Tkinter Entry следующим образом:

Далее вы можете добавить виджет в окно с помощью функции grid, как и раньше.

Наш код будет выглядеть так::

Результат будет следующим:

Теперь, если вы нажмете на кнопку, будет выведено то же сообщение, что и выше. Как насчет показа текста, набранного в виджете ввода?

Мы можем получить введенный текст с помощью функции get. Затем мы можем добавить его в нашу функцию clicked, например, так:

Если вы нажмете на кнопку и в виджете ввода будет текст, он покажет “Добро пожаловать, “, соединенный с введенным текстом.

Вот полный код:

Запустите приведенный выше код и проверьте результат:

Потрясающе!

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

Метод place() в Tkinter — Абсолютное позиционирование

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

Изображения из примера:

  • bardejov.jpg
  • rotunda.jpg
  • mincol.jpg

Сохраните их в папке рядом с файлом код для которого будет ниже.

Таким образом, на разных платформах приложения выглядят по-разному. То, что выглядит нормально на Linux, может отображаться некорректно на Mac OS. Изменение шрифтов в нашем приложении также может испортить разметку. Если мы переведем наше приложение на другой язык, мы должны доработать и разметку.

absolute.py

Python

from PIL import Image, ImageTk
from tkinter import Tk, BOTH
from tkinter.ttk import Frame, Label, Style

class Example(Frame):

def __init__(self):
super().__init__()

self.initUI()

def initUI(self):

self.master.title(«Absolute positioning»)
self.pack(fill=BOTH, expand=1)

Style().configure(«TFrame», background=»#333″)

bard = Image.open(«bardejov.jpg»)
bardejov = ImageTk.PhotoImage(bard)
label1 = Label(self, image=bardejov)
label1.image = bardejov
label1.place(x=20, y=20)

rot = Image.open(«rotunda.jpg»)
rotunda = ImageTk.PhotoImage(rot)
label2 = Label(self, image=rotunda)
label2.image = rotunda
label2.place(x=40, y=160)

minc = Image.open(«mincol.jpg»)
mincol = ImageTk.PhotoImage(minc)
label3 = Label(self, image=mincol)
label3.image = mincol
label3.place(x=170, y=50)

def main():

root = Tk()
root.geometry(«300×280+300+300»)
app = Example()
root.mainloop()

if __name__ == ‘__main__’:
main()

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48

fromPIL importImage,ImageTk

fromtkinterimportTk,BOTH

fromtkinter.ttkimportFrame,Label,Style

classExample(Frame)

def__init__(self)

super().__init__()

self.initUI()

definitUI(self)

self.master.title(«Absolute positioning»)

self.pack(fill=BOTH,expand=1)

Style().configure(«TFrame»,background=»#333″)

bard=Image.open(«bardejov.jpg»)

bardejov=ImageTk.PhotoImage(bard)

label1=Label(self,image=bardejov)

label1.image=bardejov

label1.place(x=20,y=20)

rot=Image.open(«rotunda.jpg»)

rotunda=ImageTk.PhotoImage(rot)

label2=Label(self,image=rotunda)

label2.image=rotunda

label2.place(x=40,y=160)

minc=Image.open(«mincol.jpg»)

mincol=ImageTk.PhotoImage(minc)

label3=Label(self,image=mincol)

label3.image=mincol

label3.place(x=170,y=50)

defmain()

root=Tk()

root.geometry(«300×280+300+300»)

app=Example()

root.mainloop()

if__name__==’__main__’

main()

Установка PIP в Windows

Шаг 3. Загрузите PIP get-pip.py

Перед установкой ПГИ, загрузите файл get-pip.py: get-pip.py на pypa.io .

Загрузите файл в нужную папку в Windows. Вы можете сохранить файл в любом месте, но запомните путь, чтобы использовать его позже.

Шаг 4. Запустите командную строку Windows

PIP — это программа командной строки. Когда вы устанавливаете PIP, в вашу систему добавляется команда PIP.

Чтобы запустить окно командной строки:

  • Нажмите Windows Key + X.
  • Щелкните » Выполнить».
  • Введите cmd.exe и нажмите Enter.

Либо введите cmd в строку поиска Windows и щелкните значок «Командная строка».

Оба варианта открывают окно командной строки. Однако обратите внимание, что вам может потребоваться запустить командную строку «От имени администратора». Если в любой момент вы получите сообщение об отсутствии необходимых разрешений для выполнения задачи, вам нужно будет открыть приложение от имени администратора. Чтобы запустить окно командной строки «От имени администратора», щелкните правой кнопкой мыши «Командная строка» и выберите «Запуск от имени…»

Чтобы запустить окно командной строки «От имени администратора», щелкните правой кнопкой мыши «Командная строка» и выберите «Запуск от имени…».

Шаг 5. Установка PIP в Windows

Откройте командную строку, если она еще не открыта. Используйте команду, за которой следует имя папки, чтобы перейти к расположению файла get-pip.py . Это папка, которую вы ранее использовали в качестве места загрузки.

Чтобы установить тип PIP, выполните следующие действия:

Должна начаться установка PIP. Если файл не найден, еще раз проверьте путь к папке, в которой вы сохранили файл.

Вы можете просмотреть содержимое вашего текущего каталога, используя следующую команду:

Команда возвращает полный список содержимого каталога.

Чтобы проверить текущую версию PIP, введите следующую команду:

Эта команда возвращает текущую версию платформы.

Шаг 7: проверьте установку

После установки PIP вы можете проверить, прошла ли установка успешно, набрав следующее:

Если PIP был установлен, программа запустится, и вы должны увидеть:

Если вы получили сообщение об ошибке, повторите процесс установки.

Шаг 8: настройка

В Windows файл конфигурации PIP 

Существует также устаревший файл конфигурации для каждого пользователя. Файл находится по адресу .

Вы можете установить собственный путь для этого файла конфигурации с помощью переменной среды .

Шаг 1. Создайте приложение и дескриптор главного объекта

Прежде чем мы сможем создать наш холст, нам нужно создать экземпляр объекта Python . Конструктор по умолчанию создаст экземпляр объекта Tkinter.

Этот объект обычно называют корневым объектом (главным объектом). Это потому, что ваше приложение с графическим интерфейсом использует все вызовы через этот объект. Ваше приложение не может работать без этого объекта.

Чтобы создать мастер-объект, сделайте следующее:

import tkinter as tk

# Create our master object to the Application
master = tk.Tk()

Теперь мы создали мастер-объект. Теперь для запуска приложения такие программы обычно представляют собой цикл обработки событий.

Теперь нам также нужен дескриптор нашего приложения, чтобы приложение могло использовать этот объект и передавать его в цикл обработки событий.

Это есть в классе . Итак, мы создадим класс Application, который наследует этот класс. И теперь мы можем напрямую вызвать основной цикл из нашего объекта приложения.

class Application(tk.Frame):
	def __init__(self, master=None):
		# We need the master object to
		# initialize important stuff
		super().__init__(master) # Call tk.Frame.__init__(master)
		self.master = master # Update the master object after tk.Frame() makes necessary changes to it

Мы создаем класс приложения под названием . Конструктор этого класса вызывает конструктор базового класса ( ) и передает главный объект.

Теперь фактически изменит главный объект, поэтому мы обновим нашу собственную копию до самой последней, поскольку она нам понадобится для других вызовов.

Основная программа вашего объекта запускается в главном цикле событий . Это то, что на самом деле выполняет все вызовы Python на языки более низкого уровня на вашем компьютере.

Чтобы запустить основной цикл, просто вызовите эту функцию.

import tkinter as tk

class Application(tk.Frame):
	def __init__(self, master=None):
		# We need the master object to
		# initialize important stuff
		super().__init__(master) # Call tk.Frame.__init__(master)
		self.master = master # Update the master object after tk.Frame() makes necessary changes to it

# Create our master object to the Application
master = tk.Tk()
# Create our application object
app = Application(master=master)
# Start the mainloop
app.mainloop()

Теперь, если вы запустите эту программу, вы получите следующий результат.

Настройка заголовка и размера окна

Как видно из приведенного выше примера, размер окна очень мал. Мы можем установить размер по умолчанию, используя функцию геометрии, которая принимает ширину и высоту окна в качестве параметров (в пикселях).

root_window.geometry (‘950×200’).

Вышеупомянутая строка кода изменяет размер окна до указанных выше параметров.

Точно так же мы можем добавить заголовок к виджету окна, используя функцию заголовка. Например:

root_window.title («Tkinter tutorial»).

Давайте настроим размер и заголовок окна, добавив указанные выше 2 строки кода в наше существующее приложение.

Вывод:

Мы создали минимальный графический интерфейс с окном и виджетом метки с помощью Tkinter в мгновение ока.

Заголовок окна

По умолчанию с стоке заголовка окна находится надпись «tk». Для установки собственного названия используется метод .

… 
root.title("Главное окно")
… 

Если необходимо, заголовок окна можно вообще убрать. В программе ниже второе окно () открывается при клике на кнопку, оно не имеет заголовка, так как к нему был применен метод с аргументом . Через пять секунд данное окно закрывается методом .

from tkinter import *
 
 
def about():
    a = Toplevel()
    a.geometry('200x150')
    a'bg' = 'grey'
    a.overrideredirect(True)
    Label(a, text="About this")\
        .pack(expand=1)
    a.after(5000, lambda: a.destroy())
 
 
root = Tk()
root.title("Главное окно")
Button(text="Button", width=20).pack()
Label(text="Label", width=20, height=3)\
    .pack()
Button(text="About", width=20, command=about)\
    .pack()
 
root.mainloop()
 

Tkinter pack() — размещение виджетов по горизонтали и вертикали

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

Пример создания кнопок в Tkinter

В следующем примере мы разместим две кнопки в нижнем правом углу нашего окна. Для этого мы воспользуемся менеджером pack.

Python

from tkinter import Tk, RIGHT, BOTH, RAISED
from tkinter.ttk import Frame, Button, Style

class Example(Frame):

def __init__(self):
super().__init__()
self.initUI()

def initUI(self):
self.master.title(«Кнопки в kinter»)
self.style = Style()
self.style.theme_use(«default»)

frame = Frame(self, relief=RAISED, borderwidth=1)
frame.pack(fill=BOTH, expand=True)

self.pack(fill=BOTH, expand=True)

closeButton = Button(self, text=»Закрыть»)
closeButton.pack(side=RIGHT, padx=5, pady=5)
okButton = Button(self, text=»Готово»)
okButton.pack(side=RIGHT)

def main():

root = Tk()
root.geometry(«300×200+300+300»)
app = Example()
root.mainloop()

if __name__ == ‘__main__’:
main()

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36

fromtkinterimportTk,RIGHT,BOTH,RAISED

fromtkinter.ttkimportFrame,Button,Style

classExample(Frame)

def__init__(self)

super().__init__()

self.initUI()

definitUI(self)

self.master.title(«Кнопки в kinter»)

self.style=Style()

self.style.theme_use(«default»)

frame=Frame(self,relief=RAISED,borderwidth=1)

frame.pack(fill=BOTH,expand=True)

self.pack(fill=BOTH,expand=True)

closeButton=Button(self,text=»Закрыть»)

closeButton.pack(side=RIGHT,padx=5,pady=5)

okButton=Button(self,text=»Готово»)

okButton.pack(side=RIGHT)

defmain()

root=Tk()

root.geometry(«300×200+300+300»)

app=Example()

root.mainloop()

if__name__==’__main__’

main()

Отображение диалоговых окон с вопросами и ответами

Чтобы отобразить пользователю окно сообщения “да/нет”, можно использовать одну из следующих функций messagebox:

Вы можете выбрать подходящий стиль сообщения в соответствии с вашей задачей. Просто замените функцию showinfo в приведенном выше коде и запустите ее.

Вы также можете проверить, какую кнопку нажал пользователь, используя переменную result.

Если вы нажмете OK, или “да”, или “повторить попытку”, то вернется True, а если вы выберете “нет” или “отмена”, то вернется False.

Единственной функцией, которая возвращает одно из трех значений, является функция askyesnocancel , которая возвращает True, False или None .

План обновления PIP в Windows

В поисковике Windows наберите Command Prompt (Командная строка):

Затем откройте Command Prompt (Командную строку). Во избежание проблем с уровнем доступа сделайте это от имени администратора. Для этого кликлинте правой кнопкой мыши и выберите пункт Run as administrator (Запустить от имени администратора):

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

Нажмите Enter. Вы увидите название диска

Найдите путь к Python, что является папкой, куда установлен Python.

В нашем случае путь приложения Python следующий:

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

В нашем случае это выглядит следующим образом:

Нажмите Enter, вы увидите:

Обновите PIP, использовав данную команду, затем нажмите Enter:

Shell

python -m pip install —upgrade pip

1 python-mpip install—upgrade pip

В командной строке команда будет выглядеть следующим образом:

Обратите внимание, что будет установлена последняя версия PIP:

❖ Предварительные условия

Перед установкой Пип В Windows мы должны проверить, установлен ли он в нашей системе. С Пип Это утилита Python, требуется активная установка Python.

◈ Шаг 1: Проверьте, установлен ли Python в системе, используя следующую команду.

python

Если Python отвечает своей версией и списком команд, как показано ниже, то это означает, что Python правильно устанавливается в вашей системе.

Вы должны установить Python перед установкой Пип Если команда неузнавай. Как только вы устанавливаете Python в вашей системе, перейдите к следующему шагу.

◈ Шаг 2: Команда, чтобы проверить, если PIP предварительно существует в вашей системе.

Вы можете проверить, установлен ли PIP в вашей системе, используя следующую команду:

pip help

Если PIP уже существует в вашей системе, вы получите следующий список команд и общие параметры, как показано изображение ниже.

Если PIP не будет предварительно существовать в вашей системе, вы получите сообщение об ошибке . как показано ниже.

Теперь, если вы получили вышеупомянутое сообщение об ошибке, то вам необходимо установить PIP в вашей системе Windows, используя процедуру, приведенную ниже.

Другие GUI-библиотеки для Python

Кроме библиотеки Tkinter и виджета Canvas, существует и масса других графических библиотек, применяемых для создания рисунков (drawings). Среди них:

  • Flexx,
  • wxPython,
  • PyQt5,
  • PyGUI,
  • PyGTK и многие другие.

При рисовании обычно применяется каскадный способ: компоненты добавляются поверх друг друга.

Drawing with Turtle

Отдельного упоминания заслуживает модуль Turtle (по аналогии с черепашками Turtles). Этот модуль позволяет создавать на Питоне рисунки и другие графические объекты, включая игры в специальном окне. Для того чтобы приступить к рисованию (drawing), надо сначала присоединить его (импортировать). Делается это одним из 3-х способов:

1) ;

2) ;

3) .

Drawing with Pygame

Pygame — набор модулей, используемый в тех случаях, когда нужно нарисовать 2D-игру. Также Pygame нередко называют библиотекой/фреймворком. С его помощью создают как компьютерные игры, так и мультимедийные приложения.

Pygame сравнивают с Tkinter, который с помощью своих функций и классов предоставляет языку программирования Python доступ к графической библиотеке Tk.

Если нужны дополнительные детали по теме, смотрите источники ниже:

Example

DesktopFrame

#This is a example to build an DesktopFrame. 

import tkinter as tk
import tkinter_page as tkp

window = tk.Tk()

# Way1: Generate child frame before DesktopFrame by building a dict
bar_frame = {"background""gold","width"400,"height"30}
files_frame = {"background""red","width"70,"height"200}

# Generate a DesktopFrame
bframe = tkp.DesktopFrame(window,log=True,bar_frame=bar_frame,files_frame=files_frame)

# Way2: Generate child frame after DesktopFrame by building a dict
details_frame = {"background""green","width"260,"height"200}
bframe.set_details_frame(details_frame)
bframe.set_attributes_frame({"background""blue","width"70,"height"200})

# Way3: Generate child frame after DesktopFrame by building a frame
# If youo use the third way, be careful that you should define the master.
# --------------------------------------------------------------
# |  master     |    child frame                               |
# | base_frame  | bar_frame, logs_frame                        |
# | mid_frame   | files_frame, details_frame, attributes_frame |
# --------------------------------------------------------------
logs_frame = tk.Frame(bframe.base_frame,background="black",width=400,height=40)
bframe.set_logs_frame(logs_frame)

# Pack and Run
bframe.pack()
window.mainloop()

Page

Page can be constructed by combobox style.

#This is a example 1 to build an Page. 
#Using Combobox to flip.

import tkinter as tk
import tkinter_page as tkp

window = tk.Tk()

base_frame = tk.Frame(window)

# First we creat three child pages
# We can creat a pack way for a page
def pack_way1():
	print("Use function to define pack way.")
	label1.pack(fill='x',side='bottom')
child1 = tkp.Page(base_frame,pack_way=pack_way1)
label1 = tk.Label(base_frame,text="child1",width=10,height=2)
child1.add_component(label1)

def pack_way2():
	print("Auto pack way is like this.")
	label2.pack()
child2 = tkp.Page(base_frame,pack_way=pack_way2)
label2 = tk.Label(base_frame,text="child2",width=10,height=2)
child2.add_component(label2)

# We can also use auto pack way(do not need a pack way func)
child3 = tkp.Page(base_frame)
label3 = tk.Label(base_frame,text="child3",width=10,height=2)
child3.add_component(label3)

# make child page list
child_page = child1,child3
child_page_name = 'page1','page3'

# construct father page - load child page at init
page1 = tkp.Page(base_frame,show_child=True,\
	flip="Combobox",child_page=child_page,\
	child_page_name=child_page_name,current=,\
	log=False)
label0 = tk.Label(base_frame,text="Combobox Flipway Page",width=20,height=2,\
	font=('Times', '15', 'bold'))
page1.add_component(label0)
# construct father page - add child page at certain place
page1.set_child_page(child2,name='page2',mode='ADD',place=1)

# Pack Father Page
# you can also use
# page1.pack(show_child=True)
# to auto show the current child page
base_frame.pack(fill='both',expand=1)
page1.pack()

window.mainloop()

This is another page example with tree style.

Python 2.7.9+ и 3.4+

хорошая новость! Python 3.4 (выпущен в марте 2014 года) и (выпущен в декабре 2014) корабль с Pip. Это лучшая функция любого выпуска Python. Это делает библиотеки сообщества доступными для всех. Новички больше не исключаются из использования библиотек сообщества из-за запретительной сложности настройки. При доставке с помощью диспетчера пакетов Python присоединяется Рубин, узел.js, Хаскелл, Perl, Go—почти каждый другой современный язык с большинством сообщества с открытым исходным кодом. Спасибо, питон.

конечно, это не означает, что упаковка Python решена. Опыт остается разочаровывающим. Я обсуждаю это .

и, увы для всех, кто использует Python 2.7.8 или более ранней версии (значительная часть сообщества). Нет никакого плана отправить тебе Пипа. Инструкции следовать.

Canvas: рисуем цветные прямоугольники в Python

Цвет — это объект, отображающий комбинацию трех цветов (красного, зеленого, синего — RGB). С помощью кода ниже были нарисованы прямоугольники. Также они были закрашены различными цветами.

Так создается виджет Canvas:

Далее создается прямоугольник, для чего используется . Здесь надо прописать 4 параметра:

— ;

— ;

— координатное положение верхней левой ограничительной точки (левого верхнего угла);

— координатное положение нижней правой ограничительной точки (нижнего правого угла).

Если есть необходимость, то посредством параметра у прямоугольника задается цвет контура. Окрасить всю внутреннюю область можно с помощью параметра :

А вот и итоговый результат:

Рейтинг
( Пока оценок нет )
Понравилась статья? Поделиться с друзьями:
Все про сервера
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: