Create python gui linux

Creating GUI with Python in Linux

Quick question. I’m using Linux and I want to try making a GUI with Python. I’ve heard about something like Qt, GTK+ and PyGTK but I don’t know what they are exactly and what the difference between them is. Is there any difference on how they work with different DEs like GNOME, KDE, XFCE etc.? Is there any IDE that allows you to create GUI like Microsoft Visual Studio does (for C#, C, Visual Basic etc.)? Or should I maybe use another language other than Python to make GUI applications?

5 Answers 5

Some tool-kits integrate better in one environment over the other. For example PyQt, PyKDE (and the brand new PySide) will play nicer in a KDE environment, while the GTK versions (including the WX-widgets) will blend better into a GNOME/XFCE desktops.

You should look at the environment you want to target. You can go for basic portable GUI kit, or you can to a deeper integration with tour DE, like use of integrated password manager, and configuration file parsers, that are integrated in a specific DE like KDE or GNOME.

You should also consider the dependency that your selection dictates, and what is come by default with a basic DE. For example, PyKDE in the KDE 3.X branch had a non trivial set of dependencies, while at the 4.X branch the plasma binding made the Python GUI programming dependency less of an issue.

There are several IDE tools, in different levels of completeness and maturity. The best thing is to try one ore more, and see what best fit your needs.

Источник

Как создавать приложения с графическим интерфейсом под рабочим столом Linux с помощью PyGObject — часть 1

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

PyGObject использует GObject Introspection для создания привязки для таких языков программирования, как Python. PyGObject — это следующее поколение PyGTK, можно сказать, что PyGObject=Python + GTK3.

Сегодня мы собираемся начать серию статей о создании приложений с графическим интерфейсом пользователя (GUI) под рабочим столом Linux с использованием библиотеки GTK+ и языка PyGobject. Серия будет охватывать следующие темы:

Читайте также:  Linux монтирование папки ftp
О Питоне

Прежде всего, вы должны иметь некоторые базовые знания Python; Python — очень современный и простой в использовании язык программирования. Это один из самых известных языков программирования в мире. Используя Python, вы сможете создавать множество отличных приложений и инструментов. Вы можете пройти несколько бесплатных курсов, например, на codeacademy.com, или почитать книги о Python по адресу:

О ГТК+

GTK+ — это кроссплатформенный инструментарий с открытым исходным кодом для создания графических пользовательских интерфейсов для настольных приложений. Впервые он был запущен в 1998 году как инструментарий с графическим интерфейсом для GIMP, позже он использовался во многих других приложениях и вскоре стала одной из самых известных библиотек для создания графических интерфейсов. GTK+ выпущен под лицензией LGPL.

Создание приложений с графическим интерфейсом под Linux

Существует 2 способа создания приложений с использованием GTK+ и Python:

  1. Написание графического интерфейса с использованием только кода.
  2. Разрабатывая графический интерфейс с помощью программы \Glade, которая представляет собой инструмент RAD для простого проектирования интерфейсов GTK+, Glade создает графический интерфейс в виде XML-файла, который можно использовать с любым языком программирования для создания графического пользовательского интерфейса, после экспорта XML-файла графического интерфейса мы сможем связать XML-файл с нашей программой для выполнения нужных нам задач.

Мы объясним оба способа вкратце.

Путь только с кодом

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

#!/usr/bin/python # -*- coding: utf-8 -*- from gi.repository import Gtk class ourwindow(Gtk.Window): def __init__(self): Gtk.Window.__init__(self, title="My Hello World Program") Gtk.Window.set_default_size(self, 400,325) Gtk.Window.set_position(self, Gtk.WindowPosition.CENTER) button1 = Gtk.Button("Hello, World!") button1.connect("clicked", self.whenbutton1_clicked) self.add(button1) def whenbutton1_clicked(self, button): print "Hello, World!" window = ourwindow() window.connect("delete-event", Gtk.main_quit) window.show_all() Gtk.main()

Скопируйте приведенный выше код, вставьте его в файл \test.py, установите разрешение 755 для файла test.py и запустите файл позже, используя \./test.py», вот что вы получите.

# nano test.py # chmod 755 test.py # ./test.py

Нажав на кнопку, вы увидите предложение \Hello, World!, распечатанное в терминале:

Позвольте мне объяснить код в подробном объяснении.

  1. #!/usr/bin/python: путь по умолчанию для интерпретатора Python (в большинстве случаев версии 2.7). Эта строка должна быть первой строкой в каждом файле Python.
  2. # -*- coding: utf-8 -*-: Здесь мы устанавливаем кодировку по умолчанию для файла, UTF-8 лучше всего, если вы хотите поддерживать неанглийские языки, оставьте это так.
  3. импорт Gtk из gi.repository: Здесь мы импортируем библиотеку GTK 3, чтобы использовать ее в нашей программе.
  4. Класс ourwindow(Gtk.Window): здесь мы создаем новый класс, который называется \ourwindow, мы также устанавливаем тип объекта класса на \Gtk.Window.
  5. def __init__(self): ничего нового, здесь мы определяем компоненты главного окна.
  6. Gtk.Window.__init__(self, title=”My Hello World Program”): мы используем эту строку, чтобы установить заголовок \My Hello World Program” на \ourwindow окно, вы можете изменить заголовок, если хотите.
  7. Gtk.Window.set_default_size(self, 400,325): я не думаю, что эта строка нуждается в объяснении, здесь мы устанавливаем ширину и высоту по умолчанию для нашего окна.
  8. Gtk.Window.set_position(self, Gtk.WindowPosition.CENTER): с помощью этой строки мы можем установить положение окна по умолчанию, в данном случае мы устанавливаем его в центр с помощью параметра \Gtk.WindowPosition.CENTER, при желании вы можете изменить его на \Gtk.WindowPosition.MOUSE, чтобы открыть окно в позиции указателя мыши.
  9. button1=Gtk.Button(Hello, World!): мы создали новую Gtk.Button и назвали ее \button1, текст по умолчанию для кнопки\Hello, World!», вы можете создать любой виджет Gtk, если хотите.
  10. button1.connect(clicked, self.whenbutton1_clicked): здесь мы связываем сигнал \clicked с действием \whenbutton1_clicked, чтобы при нажатии кнопки активируется действие \whenbutton1_clicked.
  11. self.add(button1): если мы хотим, чтобы наши виджеты Gtk отображались, мы должны добавить их в окно по умолчанию, эта простая строка добавляет в окно виджет \button1, это очень необходимо сделать.
  12. def whenbutton1_clicked(self, button): теперь мы определяем здесь действие \whenbutton1_clicked, мы определяем, что произойдет при нажатии виджета \button1, Параметр \(self, button) важен для указания типа родительского объекта сигнала.
  13. печать «Hello, World!»: мне не нужно больше объяснять здесь.
  14. window=ourwindow(): мы должны создать новую глобальную переменную и присвоить ей класс ourwindow(), чтобы мы могли вызывать ее позже с помощью библиотеки GTK+.
  15. window.connect(delete-event, Gtk.main_quit): теперь мы соединяем сигнал \delete-event с действием \Gtk.main_quit, это важно для того, чтобы удалить все виджеты после того, как мы автоматически закроем окно нашей программы.
  16. window.show_all(): отображение окна.
  17. Gtk.main(): запуск библиотеки Gtk.
Читайте также:  Alt linux ввод домен

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

Путь дизайнера поляны

Как я сказал в начале статьи, Glade — это очень простой инструмент для создания интерфейсов, необходимых для наших программ, он очень известен среди разработчиков, и с его помощью было создано много отличных интерфейсов приложений. Этот способ называется «Быстрая разработка приложений».

Вы должны установить Glade, чтобы начать использовать его в Debian/Ubuntu/Mint:

$ sudo apt­-get install glade

В RedHat/Fedora/CentOS запустите:

После того, как вы загрузите и установите программу и запустите ее, вы увидите слева доступные виджеты Gtk, нажмите на виджет \окно, чтобы создать новое окно.

Вы заметите, что создается новое пустое окно.

Теперь вы можете добавить к нему некоторые виджеты, на левой панели инструментов щелкните виджет \кнопка” и щелкните пустое окно, чтобы добавить кнопку в окно.

Вы заметите, что идентификатор кнопки — \button1. Теперь перейдите на вкладку Сигналы на правой панели инструментов, найдите сигнал \нажатие и введите\button1_clicked под ним.

Теперь, когда мы создали наш графический интерфейс, давайте экспортируем его. Щелкните меню \Файл и выберите \Сохранить, сохраните файл в своем домашнем каталоге под именем \myprogram.glade» и выйти.

Теперь создайте новый файл \test.py и введите в него следующий код.

#!/usr/bin/python # -*- coding: utf-8 -*- from gi.repository import Gtk class Handler: def button_1clicked(self, button): print "Hello, World!" builder = Gtk.Builder() builder.add_from_file("myprogram.glade") builder.connect_signals(Handler()) ournewbutton = builder.get_object("button1") ournewbutton.set_label("Hello, World!") window = builder.get_object("window1") window.connect("delete-event", Gtk.main_quit) window.show_all() Gtk.main()

Сохраните файл, предоставьте ему права доступа 755, как раньше, и запустите его, используя \./test.py, и вот что вы получите.

# nano test.py # chmod 755 test.py # ./test.py

Нажмите на кнопку, и вы заметите, что в терминале напечатано предложение \Hello, World!.

Читайте также:  Remote desktop raspberry pi linux

Теперь давайте объясним новые вещи:

  1. класс Handler: здесь мы создаем класс под названием \Handler, который будет включать определения действий и сигналов, которые мы создаем для графического интерфейса.
  2. builder=Gtk.Builder(): мы создали новую глобальную переменную с именем \builder, которая представляет собой виджет Gtk.Builder, это важно для импорта файла .glade.
  3. builder.add_from_file(myprogram.glade): здесь мы импортируем файл \myprogram.glade, чтобы использовать его в качестве графического интерфейса по умолчанию для нашей программы.
  4. builder.connect_signals(Handler()): эта строка соединяет файл .glade с классом обработчика, чтобы действия и сигналы, определенные в классе \Handler, работали нормально, когда мы запускаем программу.
  5. ournewbutton=builder.get_object(button1): теперь мы импортируем объект \button1 из файла .glade, мы также передаем его в глобальную переменную\ournewbutton», чтобы использовать его позже в нашей программе.
  6. ournewbutton.set_label(Hello, World!): мы использовали метод \set.label, чтобы задать для кнопки по умолчанию текст \Hello, World! предложение.
  7. window=builder.get_object(window1): здесь мы вызвали объект \window1 из файла .glade, чтобы отобразить его позже в программе.

Вот и все! Вы успешно создали свою первую программу под Linux!

Конечно, есть много более сложных вещей, которые нужно сделать, чтобы создать реальное приложение, которое что-то делает, поэтому я рекомендую вам ознакомиться с документацией по GTK+ и GObject API по адресу:

  1. Справочное руководство по GTK+
  2. Справочник по Python GObject API
  3. Справочник по объекту PyG

Разрабатывали ли вы ранее какое-либо приложение для рабочего стола Linux? Какой язык программирования и инструменты использовались для этого? Что вы думаете о создании приложений с использованием Python и GTK 3?

Источник

Оцените статью
Adblock
detector