Python 3 и PyQt. Разработка приложений

Николай Прохоренок

Описан базовый синтаксис языка Python: типы данных, операторы, условия, циклы, регулярные выражения, встроенные функции, объектно-ориентированное программирование, работа с файлами и каталогами, часто используемые модули стандартной библиотеки. Приведены основы базы данных SQLite, интерфейс доступа к базе и способы получения данных из Интернета. Особое внимание уделено библиотеке PyQt, позволяющей создавать приложения с графическим интерфейсом на языке Python. Рассмотрены способы обработки сигналов и событий, управление свойствами окна, создание формы с помощью программы Qt Designer, работа многопоточных приложений, а также все основные компоненты (кнопки, текстовые поля, списки, таблицы, меню, панели инструментов и др.) и варианты их размещения внутри окна. На сайте издательства приведены все примеры из книги.

Издательство: БХВ-Петербург, 2012 г.

ISBN 978-5-9775-0797-4

Количество страниц: 704.

Содержание книги «Python 3 и PyQt. Разработка приложений»:

  • 13 Введение
  • 15 ЧАСТЬ I. ОСНОВЫ PYTHON 3
  • 17 Глава 1. Первые шаги
    • 17 1.1. Установка Python
    • 23 1.2. Первая программа на Python
    • 24 1.3. Структура программы
    • 27 1.4. Комментарии
    • 28 1.5. Скрытые возможности IDLE
    • 29 1.6. Вывод результатов работы программы
    • 31 1.7. Ввод данных
    • 33 1.8. Доступ к документации
  • 36 Глава 2. Переменные
    • 36 2.1. Именование переменных
    • 38 2.2. Типы данных
    • 41 2.3. Присваивание значения переменным
    • 43 2.4. Проверка типа данных
    • 44 2.5. Преобразование типов данных
    • 47 2.6. Удаление переменной
  • 48 Глава 3. Операторы
    • 48 3.1. Математические операторы
    • 50 3.2. Двоичные операторы
    • 51 3.3. Операторы для работы с последовательностями
    • 52 3.4. Операторы присваивания
    • 53 3.5. Приоритет выполнения операторов
  • 55 Глава 4. Условные операторы и циклы
    • 56 4.1. Операторы сравнения
    • 58 4.2. Оператор ветвления if...else
    • 61 4.3. Цикл for
    • 63 4.4. Функции range() и enumerate()
    • 66 4.5. Цикл while
    • 67 4.6. Оператор continue. Переход на следующую итерацию цикла
    • 67 4.7. Оператор break. Прерывание цикла
  • 69 Глава 5. Числа
    • 70 5.1. Встроенные функции для работы с числами
    • 72 5.2. Модуль math. Математические функции
    • 73 5.3. Модуль random. Генерация случайных чисел
  • 76 Глава 6. Строки
    • 77 6.1. Создание строки
    • 81 6.2. Специальные символы
    • 81 6.3. Операции над строками
    • 84 6.4. Форматирование строк
    • 90 6.5. Метод format()
    • 94 6.6. Функции и методы для работы со строками
    • 97 6.7. Настройка локали
    • 98 6.8. Изменение регистра символов
    • 98 6.9. Функции для работы с символами
    • 99 6.10. Поиск и замена в строке
    • 102 6.11. Проверка типа содержимого строки
    • 105 6.12. Тип данных bytes
    • 108 6.13. Тип данных bytearray
    • 112 6.14. Преобразование объекта в последовательность байтов
    • 112 6.15. Шифрование строк
  • 114 Глава 7. Регулярные выражения
    • 114 7.1. Синтаксис регулярных выражений
    • 123 7.2. Поиск первого совпадения с шаблоном
    • 127 7.3. Поиск всех совпадений с шаблоном
    • 128 7.4. Замена в строке
    • 130 7.5. Прочие функции и методы
  • 132 Глава 8. Списки и кортежи
    • 132 8.1. Создание списка
    • 136 8.2. Операции над списками
    • 139 8.3. Многомерные списки
    • 139 8.4. Перебор элементов списка
    • 140 8.5. Генераторы списков и выражения-генераторы
    • 141 8.6. Функции map(), zip(), filter() и reduce()
    • 144 8.7. Добавление и удаление элементов списка
    • 147 8.8. Поиск элемента в списке
    • 148 8.9. Переворачивание и перемешивание списка
    • 148 8.10. Выбор элементов случайным образом
    • 149 8.11. Сортировка списка
    • 150 8.12. Заполнение списка числами
    • 151 8.13. Преобразование списка в строку
    • 151 8.14. Кортежи
    • 153 8.15. Модуль itertools
      • 153 8.15.1. Генерация неопределенного количества значений
      • 154 8.15.2. Генерация комбинаций значений
      • 156 8.15.3. Фильтрация элементов последовательности
      • 157 8.15.4. Прочие функции
  • 159 Глава 9. Словари и множества
    • 159 9.1. Создание словаря
    • 161 9.2. Операции над словарями
    • 163 9.3. Перебор элементов словаря
    • 164 9.4. Методы для работы со словарями
    • 166 9.5. Генераторы словарей
    • 167 9.6. Множества
    • 172 9.7. Генераторы множеств
  • 173 Глава 10. Работа с датой и временем
    • 173 10.1. Получение текущей даты и времени
    • 175 10.2. Форматирование даты и времени
    • 177 10.3. «Засыпание» скрипта
    • 178 10.4. Модуль datetime. Манипуляции датой и временем
      • 178 10.4.1. Класс timedelta
      • 180 10.4.2. Класс date
      • 183 10.4.3. Класс time
      • 184 10.4.4. Класс datetime
    • 189 10.5. Модуль calendar. Вывод календаря
      • 190 10.5.1. Методы классов TextCalendar и LocaleTextCalendar
      • 191 10.5.2. Методы классов HTMLCalendar и LocaleHTMLCalendar
      • 192 10.5.3. Другие полезные функции
    • 195 10.6. Измерение времени выполнения фрагментов кода
  • 197 Глава 11. Пользовательские функции
    • 197 11.1. Создание функции и ее вызов
    • 200 11.2. Расположение определений функций
    • 201 11.3. Необязательные параметры и сопоставление по ключам
    • 203 11.4. Переменное число параметров в функции
    • 205 11.5. Анонимные функции
    • 206 11.6. Функции-генераторы
    • 207 11.7. Декораторы функций
    • 209 11.8. Рекурсия. Вычисление факториала
    • 210 11.9. Глобальные и локальные переменные
    • 213 11.10. Вложенные функции
    • 215 11.11. Аннотации функций
  • 216 Глава 12. Модули и пакеты
    • 216 12.1. Инструкция import
    • 219 12.2. Инструкция from
    • 222 12.3. Пути поиска модулей
    • 223 12.4. Повторная загрузка модулей
    • 224 12.5. Пакеты
  • 228 Глава 13. Объектно-ориентированное программирование
    • 228 13.1. Определение класса и создание экземпляра класса
    • 231 13.2. Методы __init__() и __del__()
    • 232 13.3. Наследование
    • 234 13.4. Множественное наследование
    • 236 13.5. Специальные методы
    • 239 13.6. Перегрузка операторов
    • 242 13.7. Статические методы и методы класса
    • 243 13.8. Абстрактные методы
    • 244 13.9. Ограничение доступа к идентификаторам внутри класса
    • 245 13.10. Свойства класса
    • 246 13.11. Декораторы классов
  • 247 Глава 14. Обработка исключений
    • 248 14.1. Инструкция try...except...else...finally
    • 252 14.2. Инструкция with...as
    • 254 14.3. Классы встроенных исключений
    • 256 14.4. Пользовательские исключения
  • 259 Глава 15. Работа с файлами и каталогами
    • 259 15.1. Открытие файла
    • 265 15.2. Методы для работы с файлами
    • 271 15.3. Доступ к файлам с помощью модуля os
    • 273 15.4. Классы StringIO и BytesIO
    • 277 15.5. Права доступа к файлам и каталогам
    • 278 15.6. Функции для манипулирования файлами
    • 281 15.7. Преобразование пути к файлу или каталогу
    • 283 15.8. Перенаправление ввода/вывода
    • 286 15.9. Сохранение объектов в файл
    • 289 15.10. Функции для работы с каталогами
  • 293 Глава 16. Основы SQLite
    • 293 16.1. Создание базы данных
    • 295 16.2. Создание таблицы
    • 301 16.3. Вставка записей
    • 303 16.4. Обновление и удаление записей
    • 304 16.5. Изменение свойств таблицы
    • 305 16.6. Выбор записей
    • 308 16.7. Выбор записей из нескольких таблиц
    • 309 16.8. Условия в инструкции WHERE
    • 312 16.9. Индексы
    • 314 16.10. Вложенные запросы
    • 315 16.11. Транзакции
    • 317 16.12. Удаление таблицы и базы данных
  • 318 Глава 17. Доступ к базе данных SQLite из Python
    • 319 17.1. Создание и открытие базы данных
    • 319 17.2. Выполнение запроса
    • 324 17.3. Обработка результата запроса
    • 327 17.4. Управление транзакциями
    • 328 17.5. Создание пользовательской сортировки
    • 330 17.6. Поиск без учета регистра символов
    • 331 17.7. Создание агрегатных функций
    • 332 17.8. Преобразование типов данных
    • 336 17.9. Сохранение в таблице даты и времени
    • 337 17.10. Обработка исключений
  • 340 Глава 18. Взаимодействие с Интернетом
    • 340 18.1. Разбор URL-адреса
    • 343 18.2. Кодирование и декодирование строки запроса
    • 347 18.3. Преобразование относительной ссылки в абсолютную
    • 347 18.4. Разбор HTML-эквивалентов
    • 348 18.5. Обмен данными по протоколу HTTP
    • 354 18.6. Обмен данными с помощью модуля urllib.request
    • 357 18.7. Определение кодировки
  • 359 ЧАСТЬ II. СОЗДАНИЕ ОКОННЫХ ПРИЛОЖЕНИЙ
  • 361 Глава 19. Знакомство с PyQt
    • 361 19.1. Установка PyQt
    • 364 19.2. Первая программа
    • 365 19.3. Структура программы
    • 367 19.4. ООП-стиль создания окна
    • 371 19.5. Создание окна с помощью программы Qt Designer
      • 371 19.5.1. Создание формы
      • 373 19.5.2. Загрузка ui-файла в программе
      • 375 19.5.3. Преобразование ui-файла в py-файл
    • 377 19.6. Модули PyQt
    • 377 19.7. Типы данных в PyQt
    • 379 19.8. Управление основным циклом приложения
    • 381 19.9. Многопоточные приложения
      • 381 19.9.1. Класс QThread. Создание потока
      • 384 19.9.2. Управление циклом внутри потока
      • 388 19.9.3. Модуль queue. Создание очереди заданий
      • 391 19.9.4. Классы QMutex и QMutexLocker
    • 395 19.10. Вывод заставки
    • 397 19.11. Доступ к документации
  • 398 Глава 20. Управление окном приложения
    • 398 20.1. Создание и отображение окна
    • 399 20.2. Указание типа окна
    • 401 20.3. Изменение и получение размеров окна
    • 403 20.4. Местоположение окна на экране
    • 406 20.5. Указание координат и размеров
      • 407 20.5.1. Класс QPoint. Координаты точки
      • 408 20.5.2. Класс QSize. Размеры прямоугольной области
      • 410 20.5.3. Класс QRect. Координаты и размеры прямоугольной области
    • 415 20.6. Разворачивание и сворачивание окна
    • 416 20.7. Управление прозрачностью окна
    • 417 20.8. Модальные окна
    • 419 20.9. Смена иконки в заголовке окна
    • 420 20.10. Изменение цвета фона окна
    • 421 20.11. Использование изображения в качестве фона
    • 422 20.12. Создание окна произвольной формы
    • 423 20.13. Всплывающие подсказки
    • 424 20.14. Закрытие окна из программы
  • 426 Глава 21. Обработка сигналов и событий
    • 426 21.1. Назначение обработчиков сигналов
    • 430 21.2. Блокировка и удаление обработчика
    • 433 21.3. Генерация сигнала из программы
    • 435 21.4. Новый стиль назначения и удаления обработчиков
    • 438 21.5. Передача данных в обработчик
    • 439 21.6. Использование таймеров
    • 442 21.7. Перехват всех событий
    • 445 21.8. События окна
      • 445 21.8.1. Изменение состояния окна
      • 446 21.8.2. Изменение положения окна и его размеров
      • 447 21.8.3. Перерисовка окна или его части
      • 448 21.8.4. Предотвращение закрытия окна
    • 449 21.9. События клавиатуры
      • 449 21.9.1. Установка фокуса ввода
      • 451 21.9.2. Назначение клавиш быстрого доступа
      • 454 21.9.3. Нажатие и отпускание клавиши на клавиатуре
    • 455 21.10. События мыши
      • 455 21.10.1. Нажатие и отпускание кнопки мыши
      • 456 21.10.2. Перемещение указателя
      • 457 21.10.3. Наведение и выведение указателя
      • 457 21.10.4. Прокрутка колесика мыши
      • 458 21.10.5. Изменение внешнего вида указателя мыши
    • 460 21.11. Технология drag & drop
      • 460 21.11.1. Запуск перетаскивания
      • 462 21.11.2. Класс QMimeData
      • 463 21.11.3. Обработка сброса
    • 465 21.12. Работа с буфером обмена
    • 465 21.13. Фильтрация событий
    • 466 21.14. Искусственные события
  • 468 Глава 22. Размещение нескольких компонентов в окне
    • 468 22.1. Абсолютное позиционирование
    • 469 22.2. Горизонтальное и вертикальное выравнивание
    • 472 22.3. Выравнивание по сетке
    • 473 22.4. Выравнивание компонентов формы
    • 475 22.5. Классы QStackedLayout и QStackedWidget
    • 477 22.6. Класс QSizePolicy
    • 478 22.7. Объединение компонентов в группу
    • 479 22.8. Панель с рамкой
    • 480 22.9. Панель с вкладками
    • 484 22.10. Компонент «аккордеон»
    • 485 22.11. Панели с изменяемым размером
    • 487 22.12. Область с полосами прокрутки
  • 489 Глава 23. Основные компоненты
    • 489 23.1. Надпись
    • 492 23.2. Командная кнопка
    • 494 23.3. Переключатель
    • 494 23.4. Флажок
    • 495 23.5. Однострочное текстовое поле
      • 495 23.5.1. Основные методы и сигналы
      • 498 23.5.2. Ввод данных по маске
      • 499 23.5.3. Контроль ввода
    • 500 23.6. Многострочное текстовое поле
      • 500 23.6.1. Основные методы и сигналы
      • 502 23.6.2. Изменение настроек поля
      • 504 23.6.3. Изменение характеристик текста и фона
      • 505 23.6.4. Класс QTextDocument
      • 508 23.6.5. Класс QTextCursor
    • 511 23.7. Текстовый браузер
    • 512 23.8. Поля для ввода целых и вещественных чисел
    • 514 23.9. Поля для ввода даты и времени
    • 516 23.10. Календарь
    • 517 23.11. Электронный индикатор
    • 518 23.12. Индикатор хода процесса
    • 519 23.13. Шкала с ползунком
    • 521 23.14. Класс QDial
    • 522 23.15. Полоса прокрутки
  • 523 Глава 24. Списки и таблицы
    • 523 24.1. Раскрывающийся список
      • 523 24.1.1. Добавление, изменение и удаление элементов
      • 524 24.1.2. Изменение настроек
      • 526 24.1.3. Поиск элемента внутри списка
      • 526 24.1.4. Сигналы
    • 526 24.2. Список для выбора шрифта
    • 527 24.3. Роли элементов
    • 528 24.4. Модели
      • 528 24.4.1. Доступ к данным внутри модели
      • 529 24.4.2. Класс QStringListModel
      • 530 24.4.3. Класс QStandardItemModel
      • 533 24.4.4. Класс QStandardItem
    • 536 24.5. Представления
      • 536 24.5.1. Класс QAbstractItemView
      • 539 24.5.2. Простой список
      • 540 24.5.3. Таблица
      • 543 24.5.4. Иерархический список
      • 545 24.5.5. Управление заголовками строк и столбцов
    • 547 24.6. Управление выделением элементов
    • 549 24.7. Промежуточные модели
  • 551 Глава 25. Работа с графикой
    • 551 25.1. Вспомогательные классы
      • 551 25.1.1. Класс QColor. Цвет
      • 555 25.1.2. Класс QPen. Перо
      • 556 25.1.3. Класс QBrush. Кисть
      • 557 25.1.4. Класс QLine. Линия
      • 558 25.1.5. Класс QPolygon. Многоугольник
      • 560 25.1.6. Класс QFont. Шрифт
    • 562 25.2. Класс QPainter
      • 562 25.2.1. Рисование линий и фигур
      • 565 25.2.2. Вывод текста
      • 566 25.2.3. Вывод изображения
      • 567 25.2.4. Преобразование систем координат
      • 568 25.2.5. Сохранение команд рисования в файл
    • 569 25.3. Работа с изображениями
      • 570 25.3.1. Класс QPixmap
      • 572 25.3.2. Класс QBitmap
      • 573 25.3.3. Класс QImage
      • 576 25.3.4. Класс QIcon
  • 578 Глава 26. Графическая сцена
    • 578 26.1. Класс QGraphicsScene. Сцена
      • 579 26.1.1. Настройка параметров сцены
      • 579 26.1.2. Добавление и удаление графических объектов
      • 580 26.1.3. Добавление компонентов на сцену
      • 581 26.1.4. Поиск объектов
      • 582 26.1.5. Управление фокусом ввода
      • 582 26.1.6. Управление выделением объектов
      • 583 26.1.7. Прочие методы и сигналы
    • 584 26.2. Класс QGraphicsView. Представление
      • 584 26.2.1. Настройка параметров представления
      • 586 26.2.2. Преобразования между координатами представления и сцены
      • 586 26.2.3. Поиск объектов
      • 587 26.2.4. Трансформация систем координат
      • 587 26.2.5. Прочие методы
    • 588 26.3. Класс QGraphicsItem. Базовый класс для графических объектов
      • 588 26.3.1. Настройка параметров объекта
      • 590 26.3.2. Трансформация объекта
      • 591 26.3.3. Прочие методы
    • 592 26.4. Графические объекты
      • 592 26.4.1. Линия
      • 593 26.4.2. Класс QAbstractGraphicsShapeItem
      • 593 26.4.3. Прямоугольник
      • 593 26.4.4. Многоугольник
      • 594 26.4.5. Эллипс
      • 594 26.4.6. Изображение
      • 595 26.4.7. Простой текст
      • 595 26.4.8. Форматированный текст
    • 597 26.5. Группировка объектов
    • 597 26.6. Эффекты
      • 597 26.6.1. Класс QGraphicsEffect
      • 598 26.6.2. Тень
      • 599 26.6.3. Размытие
      • 599 26.6.4. Изменение цвета
      • 600 26.6.5. Изменение прозрачности
    • 600 26.7. Обработка событий
      • 600 26.7.1. События клавиатуры
      • 601 26.7.2. События мыши
      • 603 26.7.3. Обработка перетаскивания и сброса
      • 605 26.7.4. Фильтрация событий
      • 605 26.7.5. Обработка изменения состояния объекта
  • 607 Глава 27. Диалоговые окна
    • 607 27.1. Пользовательские диалоговые окна
    • 610 27.2. Класс QDialogButtonBox
    • 612 27.3. Класс QMessageBox
      • 614 27.3.1. Основные методы и сигналы
      • 616 27.3.2. Окно для вывода обычного сообщения
      • 616 27.3.3. Окно запроса подтверждения
      • 617 27.3.4. Окно для вывода предупреждающего сообщения
      • 617 27.3.5. Окно для вывода критического сообщения
      • 618 27.3.6. Окно «О программе»
      • 618 27.3.7. Окно «About Qt»
    • 618 27.4. Класс QInputDialog
      • 619 27.4.1. Основные методы и сигналы
      • 621 27.4.2. Окно для ввода строки
      • 621 27.4.3. Окно для ввода целого числа
      • 622 27.4.4. Окно для ввода вещественного числа
      • 623 27.4.5. Окно для выбора пункта из списка
    • 623 27.5. Класс QFileDialog
      • 624 27.5.1. Основные методы и сигналы
      • 626 27.5.2. Окно для выбора каталога
      • 627 27.5.3. Окна для открытия файла
      • 628 27.5.4. Окна для сохранения файла
    • 629 27.6. Окно для выбора цвета
    • 630 27.7. Окно для выбора шрифта
    • 631 27.8. Окно для вывода сообщения об ошибке
    • 632 27.9. Окно с индикатором хода процесса
    • 633 27.10. Создание многостраничного мастера
      • 633 27.10.1. Класс QWizard
      • 637 27.10.2. Класс QWizardPage
  • 640 Глава 28. Создание SDI- и MDI-приложений
    • 640 28.1. Создание главного окна приложения
    • 644 28.2. Меню
      • 645 28.2.1. Класс QMenuBar
      • 646 28.2.2. Класс QMenu
      • 648 28.2.3. Контекстное меню
      • 649 28.2.4. Класс QAction
      • 652 28.2.5. Объединение переключателей в группу
    • 653 28.3. Панели инструментов
      • 653 28.3.1. Класс QToolBar
      • 655 28.3.2. Класс QToolButton
    • 656 28.4. Прикрепляемые панели
    • 658 28.5. Управление строкой состояния
    • 659 28.6. MDI-приложения
      • 659 28.6.1. Класс QMdiArea
      • 662 28.6.2. Класс QMdiSubWindow
    • 663 28.7. Добавление иконки приложения в область уведомлений
  • 665 Заключение
  • 666 Приложение. Описание электронного архива
  • 667 Предметный указатель

Инструкция как скачать книгу Николай Прохоренок: Python 3 и PyQt. Разработка приложений в форматах DjVu, PDF, DOC или fb2 совершенно бесплатно.
Python 3 и PyQt. Разработка приложений
Рейтинг книги:
0 голосов
909

Поиск книг:




При поиске учитываются только слова, длина которых больше 3-х символов.

Статистика: