Работа с XML
Работа с XML В настоящее время формат XML (Extensible Markup Language, расширяемый язык разметки) — одна из самых активно используемых технологий. Зайдя в книжный магазин, вы, наверное, поразитесь количеству книг, посвященных XML. С распространением Интернета обмен данными между разными платформами стал необходимостью для программ, работающих с данными. Это и послужило поводом для создания XML. Разработка […]
QFile — класс для работы с файлами в Qt
QFile — класс для работы с файлами в Qt Класс QFile унаследован от класса QIODevice. В нем содержатся методы для работы с файлами: открытия, закрытия, чтения и записи данных. Создать объект можно, передав в конструкторе строку, содержащую имя файла. Можно ничего не передавать в конструкторе, а сделать это после создания объекта, вызовом метода setName(). Например: […]
Работа с SAX
Работа с SAX Ввиду большого расхода памяти, работа с моделью DOM не всегда желательна или возможна. Существует принципиально другой способ для анализа XML-документов — это SAX. SAX (Simple API for XML, простой API для XML) является стандартом JavaAPI для считывания XML-документов. SAX применяется для последовательного считывания XML-данных, что позволяет без проблем работать с очень большими […]
Работа с файлами, директориями и потоками ввода/вывода в Qt
Работа с файлами, директориями и потоками ввода/вывода в Qt Редко встречается приложение, которое не обращается к файлам. Работа с директориями (папками, в терминологии ОС Windows) и файлами — это та область, в которой не все операции являются платформонезависимыми, поэтому Qt предоставляет свою собственную поддержку этих операций, состоящую из следующих классов: QDir — для работы с […]
Работа с DOM
Работа с DOM DOM (Document Object Model, объектная модель документа) — это стандартное API для анализа XML-документов, разработанное W3C. Qt поддерживает второй уровень реализации, следующий рекомендациям W3C и включающий в себя поддержку пространства имен (name spaces). Самое большое преимущество DOM состоит в возможности представления XML-документа в виде древовидной структуры, в памяти компьютера. Цена этого удобства […]
QDir — работа с директориями в Qt
QDir — работа с директориями в Qt Разные платформы имеют разные способы представления путей. ОС Windows содержит буквы дисков, например: C:WindowsSystem. UNIX использует root, например: /usr/bin. Обратите внимание, что для разделения имен директорий в обоих представлениях используются разные знаки. Для представления директорий в платформонезависимой форме Qt предоставляет класс QDir. Для этих целей класс предоставляет целый […]
QWaitCondition — условные ожидания в Qt
QWaitCondition — условные ожидания в Qt Библиотека Qt предоставляет класс QWaitCondition, обеспечивающий возможность координации потоков. Если поток намеревается дождаться разблокировки ресурса, то он вызывает метод QWaitCondition::wait() и, тем самым, входит в режим ожидания. Выводится он из этого режима в том случае, если поток, который заблокировал ресурс, вызовет метод QWaitCondition::wakeOne() или QWaitCondition::wakeAll(). Разница этих двух методов […]
QProcess – процессы в Qt
QProcess – процессы в Qt В том случае, когда пользователь или программа производят запуск другой программы, операционная система всегда создает новый процесс. Процесс — это экземпляр программы, загруженной в память компьютера для выполнения. По своей сути, процессы — это независимые друг от друга программы, обладающие своими собственными данными. Коротко процесс можно охарактеризовать как общность кода, […]
QSemaphore — семафоры в Qt
QSemaphore — семафоры в Qt Семафоры являются обобщением мьютексов. Как и мьютексы, они служат для защиты критических секций, чтобы доступ к ним одновременно могло иметь определенное число потоков. Все другие потоки обязаны ждать. Предположим, что программа поддерживает пять ресурсов одного и того же типа, одновременный доступ к которым может быть предоставлен только пяти потокам. Как […]
QThread – потоки в Qt
QThread – потоки в Qt Потоки становятся все более популярными. Для реализации потоков Qt предоставляет класс QThread. Но давайте сначала разберемся, что же собой представляют потоки. Поток — это независимая задача, которая выполняется внутри процесса и разделяет вместе с ним общее адресное пространство, код и глобальные данные. Процесс, сам по себе, не является исполнительной частью […]