как создать ярлык для запуска приложения tkinter
Как использовать виджет Entry с помощью Tkinter в Python
Это еще один пост в нашей серии руководств по Tkinter, и сегодня мы рассмотрим виджет входа Tkinter.
В прошлый раз мы рассмотрели концепцию окна Tkinter Canvas. На этот раз мы сделаем что-нибудь другое.
Сегодняшний пост про виджет Tkinter Entry. Любой виджет — это часть основного приложения. Виджет ввода очень полезен, если вы хотите получить ввод от пользователя.
Мы можем создать виджет Entry в нашем основном приложении, а также добавить текстовые поля ввода для нашего приложения, чтобы пользователь мог что-то напечатать в нем.
Виджет
Этот виджет позволяет нам вводить одну строку текста. Если мы введем строку, длина которой превышает длину виджета, мы должны прокрутить вниз для следующей части.
Это полезно, если вы хотите, чтобы пользователь вводил небольшие поля, такие как имя и номер телефона. Давайте теперь посмотрим, как мы можем использовать это в нашем приложении.
Синтаксис
Чтобы объявить виджет записи, мы можем использовать следующий тип синтаксиса:
Он принимает дескриптор master объекта для нашего родительского окна. Это укажет, где мы можем разместить входной объект.
Шаг 1. Создаем ярлыки для нашего приложения
Но перед этим давайте создадим виджет Label для нашего приложения. Мы можем использовать это, чтобы назвать блок текста.
Это вставит его в номер row сетки приложения man вместе с text строкой!
Теперь напишем это для нашего класса. Мы напишем функцию под названием createGridLabel которая сделает это за нас.
Теперь давайте посмотрим на всю программу.
Хотя изображение очень маленькое, метки действительно есть на экране! Теперь перейдем к собственно виджетам Entry для этих ярлыков.
Мы можем создавать наши объекты ввода с помощью tk.Entry(master)
Теперь давайте разместим записи на своих местах. Первая запись принадлежит строке 0 и столбцу 1 (поскольку столбец 0 имеет нашу метку Name ), а второй виджет записи находится в (1, 1).
Теперь давайте посмотрим на полный код.
Как видите, здесь не только отображается текстовое поле, но и я могу печатать в нем. Что, если вы хотите поместить в эти поля некоторые значения-заполнители по умолчанию? Что ж, это очень просто, и для каждой записи требуется только одна строка кода.
Давайте теперь поместим AskPython и 12345678 в эти два поля в качестве значений по умолчанию.
Мы успешно добавили значения по умолчанию в наше приложение.
Виджет ввода Tkinter
Еще раз здравствуйте! Это еще один пост в нашей серии учебников по Tkinter, и сегодня мы рассмотрим виджет ввода Tkinter.
Еще раз здравствуйте! Это еще один пост в нашей серии учебников по Tkinter, и сегодня мы рассмотрим виджет ввода Tkinter.
Мы можем создать виджет ввода в нашем главном приложении, а также добавить текстовые поля ввода для нашего приложения, чтобы пользователь мог что-то ввести в нем.
Виджет ввода Tkinter
Этот виджет позволяет нам вводить одну строку текста.
Если мы введем строку, которая превышает длину виджета, мы должны прокрутить вниз для следующей части.
Это полезно, если вы хотите получить пользовательский ввод для небольших полей, таких как имя и номер телефона.
Давайте теперь посмотрим, как мы можем использовать это в нашем приложении.
Синтаксис виджета ввода
Чтобы объявить виджет записи, мы можем использовать следующий тип синтаксиса:
При этом используется дескриптор master объекта для нашего родительского окна. Это укажет, где мы можем разместить объект ввода.
Шаг 1: Создайте ярлыки для нашего приложения
Но перед этим давайте создадим виджет Label для нашего приложения. Мы можем использовать это, чтобы назвать блок текста.
Теперь давайте рассмотрим всю программу.
Хотя изображение очень маленькое, метки действительно находятся на экране! Теперь перейдем к фактическим виджетам Entry для этих меток.
Мы можем создавать наши объекты ввода с помощью tk.Запись(мастер)
Теперь давайте разместим записи в нужных местах. Первая запись принадлежит строке 0 и столбцу 1 (так как столбец 0 имеет нашу метку Имя ), в то время как виджет второй записи находится в (1, 1).
Давайте теперь посмотрим на полный код.
Как вы можете видеть, он не только отображает текстовое поле, но я также могу печатать на нем!
Что делать, если вы хотите разместить некоторые значения заполнителей по умолчанию для этих полей? Ну, это очень просто, и требуется только одна строка кода для каждой записи!
Давайте поставим Спросите Python и 12345678 теперь в этих двух полях в качестве значений по умолчанию.
Надеюсь, это сработает и для вас. Мы успешно добавили значения по умолчанию в наше приложение!
Вывод
В этом уроке мы узнали, как использовать виджет ввода с помощью Tkinter.
Оставайтесь с нами для получения дополнительной информации о Tkinter!
Создание окна по центру и кнопка выхода в Tkinter
В этой части обучения Tkinter мы познакомим Вас с инструментом Tkinter и создадим первые программы. Целью этого руководства является ознакомление с базой инструментария Tkinter. Я использовал несколько иконок из набора Tango от Gnome project.
Содержание курса
Содержание статьи
Tkinter библиотека для создания графических интерфейсов
Tkinter – это графическая библиотека на основе Tk, которая входит в стандартную библиотеку Python. Tk является библиотекой базовых элементов графического интерфейса для языка Tcl. Tkinter реализован как оболочка Python для Tcl интерпретатора, встроенного в интерпретатор Python. Существует и несколько других популярных графических инструментов для Python. Наиболее популярными являются wxPython, PyQt5 и PyGTK.
Язык программирования Python
Python – это высокоуровневый, динамичный, объектно-ориентированный язык программирования. Он ориентирован на повышение производительности программиста и читаемости кода. Разработчиком кода является Гвидо ван Россум. Впервые язык увидел свет в 1991 году. При создании Python, автор вдохновлялся такими языками программирования как ABC, Haskell, Java, Lisp, Icon и Perl. Python является высокоуровневым, кроссплатформенным, но в то же время минималистичным языком. Одним из его основных преимуществ является отсутствие скобок и точек с запятой. Вместо этого Python использует отступы. Сегодня существует две основные ветви языка: Python 2.7 и Python 3.x.
Стоит отметить, что Python 3 нарушает обратную совместимость с предыдущими версиями языка. Его разработали для того, чтобы исправить ряд недостатков конструкции уже существующего языка, упростить и очистить его от ненужных деталей. Последней версией Python 2.x является 2.7.17, а Python 3.x – 3.8.5. Данный учебник написан на Python 2.x, равно как и большая часть кода. Мы обновили учебник под Python 3.8.
Для перехода программного обеспечения и самих разработчиков на Python 3.x потребуется какое-то время. Уже перешли все на Python 3. Сегодня Python поддерживается большим количеством добровольцев со всего мира. Напомню, что язык имеет открытый исходный код.
Python – это идеальный язык для тех людей, которые хотят научиться программировать.
Язык программирования Python поддерживает несколько стилей программирования. Он не принуждает разработчика придерживаться определенной парадигмы. Python поддерживает объектно-ориентированное и процедурное программирование. Существует и ограниченная поддержка функционального программирования.
Создание обычного окна в Tkinter
В нашем первом примере мы покажем стандартное окно на экране.
Разработка графического интерфейса Python с помощью Tkinter: Часть 3
Это третья часть нашей многосерийной серии по разработке графических интерфейсов на Python с использованием Tkinter. Проверьте ссылки ниже для других частей этой серии:
Вступление
Tkinter – это де-факто стандартный пакет для построения графических интерфейсов в Python. В Stackabuse first и second части учебника Tkinter мы узнали, как использовать основные строительные блоки GUI для создания простых интерфейсов.
В последней части нашего урока мы рассмотрим несколько ярлыков, которые предлагает Tkinter, чтобы мы могли легко предлагать сложные и очень полезные функции. Мы также узнаем о Python MegaWidgets – инструментарии, основанном на Tkinter, который еще быстрее ускоряет создание сложных интерфейсов.
Диалоговое окно файла
Аргумент для типов файлов представляет собой список 2-элементных кортежей. В каждом кортеже первым элементом является строка, представляющая собой любое описание, которое мы хотим задать для каждого из типов файлов. Второй элемент – это то, где мы указываем или перечисляем расширения файлов, связанные с каждым типом файла (если есть только одно расширение, это строка, в противном случае это кортеж). Как вы можете видеть на скриншоте вывода выше, пользователь может выбрать отображаемый тип файла из выпадающего списка в правом нижнем углу диалогового окна.
Отображение Изображений С Помощью Tkinter
Еще одна интересная вещь, которую многие люди могут счесть полезным применить к своим графическим интерфейсам, – это отображение изображений. Давайте немного изменим предыдущий пример.
Выбор Цвета
Еще одна распространенная функция, особенно в программном обеспечении, ориентированном на графику, позволяет пользователю выбирать цвет из палитры. В этом случае Tkinter также предлагает хорошее, готовое к использованию решение, которое должно удовлетворить большинство наших потребностей в выборе цвета.
Окна сообщений
Имейте в виду, что точный внешний вид диалогового окна файла, Средства выбора цвета и всех окон сообщений зависит от операционной системы, в которой выполняется код, а также от системного языка.
Индикатор выполнения
Еще одним полезным элементом расширенных графических интерфейсов является индикатор выполнения . В следующем примере показана простая реализация этой функции с помощью Tkinter:
Состояние нашего индикатора прогресса будет контролироваться временем – индикатор будет прогрессировать в десять шагов, выполняемых с интервалом в одну секунду. Для этого мы импортируем модуль time в строку 2.
Python Mega Widgets
Виджет EntryField
Как вы можете видеть в нашем примере, сразу после того, как мы отобразим наше окно, первое поле ввода будет белым, а второе-красным. Это происходит потому, что пустая строка (содержимое записей по умолчанию) попадает в категорию “алфавитных” сущностей, но это определенно не целое число.
Вывод
Tkinter-одна из многих доступных графических библиотек для Python, но ее большое преимущество заключается в том, что она считается стандартом Python и по-прежнему распространяется по умолчанию со всеми дистрибутивами Python. Я надеюсь, что вам понравился этот небольшой учебник и теперь вы хорошо разбираетесь в создании интерфейсов для пользователей, которые могут испугаться программного обеспечения, управляемого командной строкой.
Разработка графического интерфейса Python с помощью Tkinter
Это первая часть нашей многосерийной серии по разработке графических интерфейсов на Python с использованием Tkinter. Проверьте ссылки ниже для следующих частей этой серии:
Вступление
Создание вашего первого окна
Как уже упоминалось ранее, Tkinter доступен со стандартными установками Python, поэтому независимо от вашей операционной системы создание вашего первого окна должно быть очень быстрым. Все что вам нужно это 3 строки кода:
После импорта пакета tkinter в строке 1 в строке 3 мы создаем виджет главного (корневого) окна нашего приложения. Чтобы программа работала правильно, в нашем интерфейсе должен быть только один виджет корневого окна, и, поскольку все остальные виджеты будут ниже в иерархии, чем root, он должен быть создан раньше любых других виджетов.
Добавление простых виджетов в Корневое окно
Мы создаем экземпляр класса Label в строке 5 приведенного выше кода. В первом аргументе мы указываем на нужный родительский виджет метки, который в данном примере является нашим корневым окном. Во втором аргументе мы указываем текст, который мы хотим, чтобы метка отображалась.
Подробнее о том, как это работает, мы узнаем в следующем примере, когда добавим в окно еще один виджет. Обратите внимание, что размер окна автоматически подстраивается под виджет, размещенный внутри него.
Добавление функциональной кнопки
Теперь давайте добавим что-то, с чем пользователь может взаимодействовать. Самый очевидный выбор-простая кнопка. Давайте поместим в наше окно кнопку , которая дает нам дополнительный способ закрыть наше окно.
Управление размером окна
Давайте взглянем на три новые строки, которые позволят нам легко изменить размер нашего окна.
Однако в этом примере мы используем методы root minsize и maxsize для управления максимальными и минимальными значениями ширины и высоты нашего окна. Здесь мы точно определяем, насколько широким и высоким должно быть окно, но я рекомендую вам поиграть с этими тремя строками, чтобы увидеть, как работает изменение размера в зависимости от размера наших виджетов и от того, какие минимальные и максимальные значения мы определяем.
Подробнее об ориентации виджета
Как вы, вероятно, уже заметили, использование метода pack() не дает нам слишком большого контроля над тем, где виджеты оказываются после упаковки их в родительские контейнеры. Нельзя сказать, что метод pack() не предсказуем – просто очевидно, что иногда выбрасывание виджетов в окно в одном столбце, где один виджет помещается поверх предыдущего, не обязательно согласуется с нашим утонченным чувством эстетики. Для этих случаев мы можем либо использовать pack() с некоторыми умными аргументами, либо использовать grid() – другой метод ориентации виджетов внутри контейнеров.
Во-первых, давайте, может быть, дадим pack() еще один шанс. Изменив строки 15 и 16 из предыдущего примера, мы можем немного улучшить наш интерфейс:
Таким простым способом мы приказываем методу pack() растянуть метку и кнопку вдоль горизонтальной оси. Мы также можем изменить способ pack() бросает новые виджеты внутри окна. Например, используя следующий аргумент:
Чтобы сделать этот пример немного понятнее, мы избавились от строк, которые изменили заголовок и размер корневого окна. В строках 6 и 8 мы добавили еще одну метку и еще одну кнопку (обратите внимание, что нажатие на нее ничего не даст, так как мы не прикрепили к ней никакой команды).
Однако самое главное, что pack() был заменен grid() во всех случаях. Как вы, вероятно, легко можете понять, аргументы column и row позволяют нам определить, какую ячейку сетки будет занимать наш виджет. Имейте в виду, что если вы определяете одни и те же координаты для двух разных виджетов, то один из них, отображаемый далее в вашем коде, будет отображаться поверх другого.
Теперь, когда вы знаете два разных метода ориентации виджетов, имейте в виду, что вы никогда не должны смешивать grid() и pack() внутри одного и того же контейнера.
Кадры
Давайте попробуем сделать это с помощью наших четырех простых виджетов:
Окна Верхнего Уровня
В приведенном выше примере мы создаем наше новое окно в строке 5. Поскольку окно-это объект, который не привязан к какому-либо другому виджету, нам не нужно указывать на его родителя или ориентировать его внутри родительского виджета.
Мы хотели бы показать новое окно после нажатия кнопки. В строке 5 он отображается сразу же, поэтому мы используем метод withdraw() в строке 6, чтобы скрыть его. Затем мы изменяем определение кнопки в строке 15.
Выводы
Как видите, с помощью Tkinter вы можете легко и быстро создавать графические интерфейсы для неопытных пользователей вашего программного обеспечения. Библиотека включена во все установки Python, поэтому создание вашего первого простого окна занимает всего пару строк кода. Приведенные выше примеры едва ли поцарапают поверхность возможностей пакета.
Продолжайте читать и ознакомьтесь со второй частью этого учебника Tkinter, который научит вас создавать сложные, интуитивно понятные и красивые графические пользовательские интерфейсы.