» » » Жасмин Бланшет - QT 4: программирование GUI на С++


Авторские права

Жасмин Бланшет - QT 4: программирование GUI на С++

Здесь можно скачать бесплатно "Жасмин Бланшет - QT 4: программирование GUI на С++" в формате fb2, epub, txt, doc, pdf. Жанр: Программирование, издательство КУДИЦ-ПРЕСС, год 2007. Так же Вы можете читать книгу онлайн без регистрации и SMS на сайте LibFox.Ru (ЛибФокс) или прочесть описание и ознакомиться с отзывами.
Жасмин Бланшет - QT 4: программирование GUI на С++
Рейтинг:
Название:
QT 4: программирование GUI на С++
Издательство:
КУДИЦ-ПРЕСС
Год:
2007
ISBN:
978-5-91136-038-2
Скачать:

99Пожалуйста дождитесь своей очереди, идёт подготовка вашей ссылки для скачивания...

Скачивание начинается... Если скачивание не началось автоматически, пожалуйста нажмите на эту ссылку.

Вы автор?
Жалоба
Все книги на сайте размещаются его пользователями. Приносим свои глубочайшие извинения, если Ваша книга была опубликована без Вашего на то согласия.
Напишите нам, и мы в срочном порядке примем меры.

Как получить книгу?
Оплатили, но не знаете что делать дальше? Инструкция.

Описание книги "QT 4: программирование GUI на С++"

Описание и краткое содержание "QT 4: программирование GUI на С++" читать бесплатно онлайн.



Единственное официальное руководстро по практическому программированию в среде Qt 4.1.

Применяя средства разработки Qt компании «Trolltech», вы сможете создавать на С++ промышленные приложения, которые естественно работают в средах Windows, Linux/UNIX, Linux для встроенных систем без изменения программного кода и Mac Os X. Книга написана сотрудниками компании «Trolltech». Она представляет собой практическое руководство по успешному применению самой мощной из всех созданных до сих пор версий Qt — Qt 4.1.

Из книги «Qt 4: программирование GUI на С++» вы узнаете о наиболее эффективных приемах и методах программирования с применением Qt 4 и овладеете ключевыми технологиями в самых различных областях — от архитектуры Qt модель/представление до мощного графического процессора 2D. Авторы вооружают читателей беспрецедентно глубокими знаниями модели событий и системы компоновки Qt.

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

Данное издание:

• Включает новые главы по архитектуре Qt 4 модель/представление и поддержке подключаемых модулей Qt, а также краткое введение в программирование встроенных систем на платформе Qtopia.

• Раскрывает все основные принципы программирования в среде Qt — от создания диалоговых и других окон до реализации функциональности приложений.

• Знакомит с передовыми методами управления компоновкой виджетов и обработкой событий.

• Показывает, как можно с наибольшей эффективностью использовать новые программные интерфейсы Qt 4, в частности мощный графический процессор 2D и новые простые в применении классы—контейнеры.

• Представляет передовые методы Qt 4, которых нет ни в одной книге: от создания подключаемых модулей, расширяющих возможности Qt, и приложений, до применения «родных» для конкретной платформы программных интерфейсов.

• Содержит приложение с подробным введением в программирование на С++ в среде Qt для опытных Java—разработчиков.


Жасмин Бланшет (Jasmine Blanchette) — менеджер по документированию и старший разработчик компании «Trolltech» с 2001 года. Он является редактором «Qt Quarterly», информационного бюллетеня компании «Trolltech», и соавтором книги «Qt 3: программирование GUI на С++».

Марк Саммерфилд (Mark Summerfield) — независимый преподаватель и консультант по С++, Qt и Python. Он работал менеджером по документированию в компании «Trolltech» на протяжении трех лет. Марк является соавтором книги «Qt 3: программирование GUI на С++».






stream.setGenerateByteOrderMark(true);

до начала записи в поток QTextStream. Данные в этом случае будут сохраняться в формате UTF-16, который использует два байта для представления одного символа и который будет иметь префикс из специального 16-битового значения (признак порядка байтов Unicode, 0xFFFE), указывающего на применение файлом кодировки Unicode и на прямой или обратный порядок байтов. Формат UTF-16 идентичен представлению в памяти строк QString, и поэтому чтение и запись представленных в кодировке Unicode строк в формате UTF-16 могут выполняться очень быстро. Однако такой подход связан с перерасходом памяти при сохранении данных, представленных целиком в кодировке ASCII, в формате UTF-16, поскольку в данном случае каждый символ займет два байта вместо одного.

Другие кодировки можно задавать путем вызова функции setCodec() с указанием соответствующего объекта преобразования QTextCodec. QTextCodec осуществляет преобразование между Unicode и заданной кодировкой. Объекты QTextCodec используются в различных контекстах в Qt. Внутренними средствами они применяются для поддержки шрифтов, методов ввода, буфера обмена, технологии «drag-and-drop» и названий файлов. Но мы можем их использовать и непосредственно при написании приложений Qt.

При чтении текстового файла QTextStream автоматически обнаруживает кодировку Unicode, если файл начинается с признака, определяющего порядок байтов. Такой режим работы можно отключить с помощью вызова setAutoDetectUnicode(false). Если нельзя рассчитывать на то, что данные начинаются с признака, определяющего порядок байтов, лучше всего перед чтением вызвать функцию setCodec() с аргументом «UTF-16».

Другой кодировкой, поддерживающей весь Unicode, является UTF-8. Его главное достоинство по сравнению с UTF-16, состоит в том, что он — супермножество по отношению к ASCII. Любой символ с кодом в диапазоне от 0x00 до 0x7F представляется в виде одного байта. Другие символы, включая символы Latin-1, код которых превышает значение 0x7F, представляются в виде последовательности из нескольких байтов. Текст, состоящий в основном из символов ASCII, в формате UTF-8 займет примерно вполовину меньше памяти, чем в формате UTF-16. Для применения UTF-8 с QTextStream перед чтением и записью сделайте вызов setEncoding(QTextStream::UnicodeUTF8).

Если мы всегда собираемся считывать и записывать файлы в кодировке Latin-1, вне зависимости от применяемой пользователем локальной кодировки, мы можем установить кодировку «ISO 8859-1» для потока QTextStream. Например:

QTextStream in(&file);

in.setCodec("ISO 8859-1");

При применении некоторых форматов файлов их кодировка задается в заголовке файла. Заголовок обычно представляется в простом виде в кодировке ASCII, чтобы обеспечить его правильное чтение вне зависимости от используемой кодировки (в предположении, что она является супермножеством по отношению к ASCII). Интересным примером таких форматов являются файлы XML. Обычно файлы XML представлены в кодировке UTF-8 или UTF-16. Для правильного их чтения необходимо вызвать функцию setCodec() с «UTF-8». Если используется формат UTF-16, QTextStream автоматически обнаружит это и настроится на него. Заголовок <?xml?> файла XML иногда содержит аргумент encoding, например:

<?xml version="1.0" encoding="EUC-KR"?>

Поскольку QTextStream не позволяет менять кодировку после начала чтения, чтобы учесть явно заданную кодировку, придется заново прочитать файл, задавая правильное преобразование (полученное функцией QTextCodec::codecForName()). В случае файла XML мы можем сами не делать преобразование кодировок, воспользовавшись классами Qt, предназначенными для XML и описанными в главе 15.

Другое применение объектов QTextCodec заключается в указании кодировки строк в исходном коде. Давайте рассмотрим пример, когда группа японских программистов создает приложение, предназначенное главным образом для применения на японском рынке. Эти программисты, вероятно, будут писать свой исходный программный код в текстовом редакторе, использующем такие кодировки, как EUC-JP или Shift-JIS. Такой редактор позволяет им вводить японские иероглифы непосредственно, и, например, они смогут написать следующий код:

QPushButton *button = new QPushButton(tr("♦♦"));

По умолчанию Qt считает, что аргументы функции tr() задаются в кодировке Latin-1. Для изменения этого необходимо вызвать статическую функцию QTextCodec::setCodecForTr(). Например:

QTextCodec *japaneseCodec = QTextCodec::codecForName("EUC-JP");

QTextCodec::setCodecForTr(japaneseCodec);

Это должно быть сделано до первого вызова tr(). Обычно мы делаем это в функции main() непосредственно после создания объекта QApplication.

Другие используемые в программе строки будут по-прежнему интерпретироваться как строки, представленные в кодировке Latin-1. Если программисты хотят вводить японские иероглифы и здесь, они могут явно преобразовывать их в Unicode, используя объект QTextCodec:

QString text = japaneseCodec->toUnicode("♦♦♦♦♦");

Можно поступить по-другому и указать Qt на необходимость применения особого преобразования между типами const char * и QString путем вызова функции QTextCodec::setCodecForCStrings():

QTextCodec::setCodecForCStrings(QTextCodec::codecForName("EUC-JP"));

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

Ниже приводится список кодировок, поддерживаемых Qt 4:

• Apple Roman

• Big5

• Big5-HKSCS

• EUC-JP

• EUC-KR

• GB18030-0

• IBM 850

• IBM 866

• IBM 874

• ISO 2022-JP

• ISO 8859-1

• ISO 8859-2

• ISO 8859-3

• ISO 8859-4

• ISO 8859-5

• ISO 8859-6

• ISO 8859-7

• ISO 8859-8

• ISO 8859-9

• ISO 8859-10

• ISO 8859-13

• ISO 8859-14

• ISO 8859-15

• ISO 8859-16

• Iscii-Bng

• Iscii-Dev

• Iscii-Gjr

• Iscii-Knd

• Iscii-Mlm

• Iscii-Ori

• Iscii-Pnj

• Iscii-Tlg

• Iscii-Tml

• JIS X 0201

• JIS X 0208

• KOI8-R

• KOI8-U

• MuleLao-1

• ROMAN8

• Shift-JIS

• TIS-620

• TSCII

• UTF-8

• UTF-16

• UTF-16BE

• UTF-16LE

• Windows-1250

• Windows-1251

• Windows-1252

• Windows-1253

• Windows-1254

• Windows-1255

• Windows-1256

• Windows-1257

• Windows-1258

• WINSAMI2

Для всех этих кодировок функция QTextCodec::codecForName() всегда будет возвращать достоверный указатель. Другие кодировки можно обеспечить путем создания подкласса QTextCodec.

Создание переводимого интерфейса приложения

Если мы хотим иметь многоязыковую версию нашего приложения, мы должны сделать две вещи:

• убедиться, что все строки, которые видит пользователь, проходят через функцию tr();

• загрузить файл перевода (.qm) при запуске приложения.

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

Функция tr() является статической функцией, определенной в классе QObject и переопределяемой в каждом подклассе, в котором встречается макрос Q_OBJECT. При ее использовании в рамках подкласса QObject мы можем вызывать tr() без ограничений. Вызов tr() возвращает перевод строки, если он имеется, и первоначальный текст в противном случае.

Для подготовки файлов переводов мы должны запустить утилиту Qt lupdate. Эта утилита собирает все строковые константы, которые встречаются в вызовах tr(), и формирует файлы переводов, содержащие все эти подготовленные к переводу строки. Эти файлы могут затем быть переданы переводчику для добавления к ним перевода строк. Эта процедура рассматривается позже в данной главе в разделе «Перевод приложений».


На Facebook В Твиттере В Instagram В Одноклассниках Мы Вконтакте
Подписывайтесь на наши страницы в социальных сетях.
Будьте в курсе последних книжных новинок, комментируйте, обсуждайте. Мы ждём Вас!

Похожие книги на "QT 4: программирование GUI на С++"

Книги похожие на "QT 4: программирование GUI на С++" читать онлайн или скачать бесплатно полные версии.


Понравилась книга? Оставьте Ваш комментарий, поделитесь впечатлениями или расскажите друзьям

Все книги автора Жасмин Бланшет

Жасмин Бланшет - все книги автора в одном месте на сайте онлайн библиотеки LibFox.

Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь.
Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.

Отзывы о "Жасмин Бланшет - QT 4: программирование GUI на С++"

Отзывы читателей о книге "QT 4: программирование GUI на С++", комментарии и мнения людей о произведении.

А что Вы думаете о книге? Оставьте Ваш отзыв.