Начало работы с более современными интерфейсами разработки на Python для ваших проектов

Почти каждое программное обеспечение, которое мы используем на экране компьютера, представляет собой своего рода графический интерфейс. Большинство приложений с графическим интерфейсом пользователя предоставляют платформу для удобного взаимодействия с программным продуктом. Блокнот и обычный калькулятор, присутствующие в большинстве систем Windows, являются простыми примерами интерфейса GUI, доступного для всех пользователей.

Большинство языков программирования позволяют нам разрабатывать пользовательский интерфейс, через который может происходить взаимодействие человека с компьютером, включая Python. С помощью Python и его различных типов библиотек, доступных для разработки графического интерфейса, таких как Tkinter, Kivy, PyQt5 и других подобных инструментов, программисты могут легко разрабатывать интерфейсы графического интерфейса.

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



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

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



Современный графический интерфейс для загрузки изображений:

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

Следующий пакет можно установить с помощью простой команды pip, как показано ниже. Пользовательская библиотека tkinter доступна на веб-сайте Python Package Index, с которым вы можете ознакомиться по ссылке здесь.

pip установить customtkinter

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

Импорт необходимых библиотек:

На первом этапе мы импортируем все необходимые библиотеки, которые будем использовать для создания нашего расширенного графического интерфейса. Мы будем использовать пользовательскую библиотеку tkinter, которую мы недавно установили с помощью команды pip. Мы также можем использовать библиотеку tkinter одновременно с пользовательским модулем tkinter, так как некоторые функции являются производными друг от друга.

Наконец, мы импортируем библиотеку Pillow, которая является одной из лучших библиотек Python для обработки различных типов задач, связанных с изображениями. Мы импортируем классы ImageTk и Image для библиотеки Pillow, что позволит нам выполнять задачи внутри графического интерфейса. Ниже приведен блок кода для импорта всех необходимых библиотечных модулей.

# Importing the custom tkinter library for constructing the advanced GUI interface
import customtkinter
import tkinter
from PIL import ImageTk, Image

Установка тем и создание фонового интерфейса:

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

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

# Setting the appearence and theme of the GUI window
customtkinter.set_appearance_mode("dark")
customtkinter.set_default_color_theme("blue") 

# Setting the dimensions and defining the custom tkinter function
app = customtkinter.CTk() 
app.geometry("1280x720")

Создание функции кнопки:

На следующем шаге мы напишем функцию, которая позволит нам отображать наше изображение в графическом окне (либо весь экран, либо соответствующий кадр). Функция фотоизображения в классе ImageTk позволяет отображать желаемое изображение. Мы также используем пользовательскую библиотеку Tkinter, в которой отображаются изображения. Фрагмент кода для программирования того же самого приведен ниже.

# Creating the function for displaying our image
def button_function():
    img = ImageTk.PhotoImage(Image.open("Trees.jfif"))
    label = customtkinter.CTkLabel(master = frame, image = img, text="")
    label.pack()
    print("button pressed")

Создание рамки и интерфейс кнопки:

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

# Creating the frame
frame = customtkinter.CTkFrame(master = app)
frame.pack(pady = 20, padx = 60, fill = "both", expand = True)

# # Use CTkButton for displaying the image
button = customtkinter.CTkButton(master=frame, text="Display Image", command=button_function)
button.place(relx=0.5, rely=0.8, anchor=tkinter.CENTER)
button.pack()

app.mainloop()

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

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

Расширенное улучшение для загрузки нескольких изображений:

В этом разделе мы рассмотрим немного более продвинутый вариант вышеупомянутого проекта, в котором мы будем отображать рандомизированное изображение каждый раз, когда мы отображаем изображение и очищаем его. Мы будем использовать случайную библиотеку, которая позволит нам интерпретировать случайный выбор изображения каждый раз, когда изображение очищается с помощью кнопки «Удалить изображение» и когда сразу после этого нажимается кнопка «Показать изображение». Я использовал три изображения в этой статье для генерации изображений. Я сохранил эти три изображения как «Tree.jfif», «Maps.jfif» и «Books.jfif» в рабочем каталоге проекта.

Другая дополнительная функция, которую мы определяем, — это функция очистки фрейма, которая удалит все предыдущие виджеты, собранные в фрейме. По этой причине мы поместим кнопки «Удалить изображение» и «Показать изображение» вне рамки в графическом окне. Остальной процесс одинаков для отображения кнопок в графическом окне и запуска программного обеспечения. Блок кода для всего проекта приведен ниже для удобства доступа к разработчикам.

# Importing the custom tkinter library for constructing the advanced GUI interface
import customtkinter
import tkinter
from PIL import ImageTk, Image
import random

# Setting the appearence and theme of the GUI window
customtkinter.set_appearance_mode("dark")
customtkinter.set_default_color_theme("blue") 

# Setting the dimensions and defining the custom tkinter function
app = customtkinter.CTk() 
app.geometry("1200x800")

# Creating the function for displaying our image
def button_function():
    image_list = ["Trees.jfif", "Maps.jfif", "Books.jfif"]
    selected_Image = random.choice(image_list)
    print(selected_Image)

    img = ImageTk.PhotoImage(Image.open(selected_Image))
    label = customtkinter.CTkLabel(master = frame, image = img, text="")
    label.pack()
    print("button pressed")

def clear_frame():
   for widgets in frame.winfo_children():
      widgets.destroy()

# Creating the frame
frame = customtkinter.CTkFrame(master = app)
frame.pack(pady = 20, padx = 60, fill = "both", expand = True)

# # Use CTkButton for displaying the image
button = customtkinter.CTkButton(master=app, text="Display Image", command=button_function)
button.place(relx=0.5, rely=0.8, anchor=tkinter.CENTER)
button.pack()

# # Use CTkButton instead of tkinter Button
button = customtkinter.CTkButton(master=app, text="Delete Image", command=clear_frame)
button.place(relx=0.5, rely=0.6, anchor=tkinter.CENTER)
button.pack()

app.mainloop()

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

Заключение:

«Следующая большая вещь — это та, которая делает последнюю большую вещь пригодной для использования».
Блейк Росс

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

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

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



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

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







Всем спасибо, что дочитали до конца. Надеюсь, всем вам понравилось читать статью. Желаю всем прекрасного дня!