Cetus Group
Cetus Logo
Информационные системы и программное обеспечение



Файлы проекта

Поддержка

 
Разработка программного обеспечения средствами языка Python и библиотеки Qt (PyQt)
Размещено 23.12.2005 : Редакция 18.02.2006 : Обновления 30.06.2006
А.Г. © Часть 1 - "Создание приложения с использованием программы 'designer'"

Написание простой программы с графическим интерфейсом пользователя средствами PyQt может быть выполнена следующим образом (пример выполнен в ОС Linux SuSE 10 с использованием библиотеки Qt версии 3).

1. Создаем новую форму с помощью программы "designer", которая входит в состав пакета инструментов библиотеки Qt и обычно находится в "/usr/lib/qt3/bin". Диалог выбора типа формы открывается сразу же после запуска "designer". Выбираем "Widget".

2. Добавляем на форму необходимые виджеты с помощью панели инструментов "Common Widgets" (расположена слева) или элемента меню Tools (расположен вверху). Имена и типы виджетов выводятся в панели "Objects" (расположена справа).

3. Добавляем реакцию на нажатие кнопки. Для этого на панели инструментов главного окна нажимаем кнопку "Connect Signal/Slot" (расположена справа вверху). Механизм "Signal/Slot" обеспечивает назначение обработчика ("Slot'а") некоторому событию ("Signal'у"). После нажатия кнопки "Connect Signal/Slot" подводим курсор мыши к кнопке "pushButton1" нашей формы, нажимаем левую кнопку мыши (в результате выделяется подсветкой виджет формы, который будет источником ("Signal'а") и не отпуская кнопки мыши тащим курсор на свободное поле основного виджета нашей формы "Form1" (он также при этом выделяется). Отпускаем кнопку мыши, при этом выводится диалог выполнения выбора "Signal'а" и "Slot'а". Таким образом, ответственным за обработку нажатия на кнопку "pushButton1" мы назначили класс "Form1".

4. Формируем необходимые соединения. В качестве сигнала выбираем нажатие кнопки, для создания слота нажимаем кнопку "Edit Slots".

5. Сохраняем результаты, например в файл "form1.ui" ("ui" - User Interface) и генерируем код Python с помощью команды:

pyuic form1.ui > form1.py

6. Пишем главный модуль на Python, например в файл "main1.py" (обязательно соблюдая отступы от начала строки!!!):

#!/usr/bin/python

import sys
from form1 import *

app=QApplication(sys.argv)
form=Form1()
app.setMainWidget(form)
form.show()
app.exec_loop()

7. Устанавливаем для главного модуля право на выполнение. Выполняем. Обработчик нажатия на кнопку пока не работает (вернее, выдает на терминал сообщение: "Form1.newSlot(): Not implemented yet") - мы его еще не реализовали.


Copyright©2005, Cetus Group : All rights reserved.