Каталог статей

Главная » Статьи

Всего материалов в каталоге: 19
Показано материалов: 11-19
Страницы: « 1 2

В среду Qt 4.4 был включен модуль QtWebKit. Благодаря этому добавить функциональность Веб-браузера в ваше Qt приложение стало очень просто. Модуль QtWebKit основан на движке с открытым исходным кодом WebKit, поддерживающим HTML, XHTML, CSS, формат векторной графики SVG, JavaScript.
Для использования классов модуля QtWebKit необходимо добавить следующую строку в файл проекта:

QT += webkit

Эта строчка необходима, т.к. по умолчанию модуль QtWebKit (в отличие от модулей QtCore и QtGui) в процесс сборки не включен.
Для загрузки и отображения веб-сайтов воспользуемся объектом класса QWebView:
view = new QWebView(this);

Для загрузки сайта используем метод QWebView::load(const QUrl & url):
void browser::load()
{
QString name("http://" + adress->text());
view->load(QUrl(name));
}
Мои статьи | Просмотров: 2029 | Добавил: qt-boy | Дата: 09.08.2010 | Комментарии (0)

Для динамического приведения QObject используется функция

T qobject_cast (QObject *object);

Она работает как стандартная операция dynamic_cast в C++, но не требует поддержки со стороны системы динамической идентификации типов (RTTI).

Пусть у нас имеется класс MyClass1, наследующий от QObject и MyClass2, наследующий от MyClass1:

#include <QObject>
class MyClass1 : public QObject
{
Q_OBJECT
public:
MyClass1();
// ...
};
class MyClass2 : public MyClass1
{
Q_OBJECT
public:
MyClass2();
// ...
};


Динамическое приведение иллюстрирует следующий код:

QObject *a = new MyClass2;
MyClass1 *b = qobject_cast<MyClass1*>(a);
MyClass2 *c = qobject_cast<MyClass2*>(b);

Эти операции сработают корректно на стадии выполнения.

Как и в случае с dynamic_cast, результат приведения можно проверить:

if (b = qobject_cast<MyClass1*>(a))
{
// ...
}

Система метаобъектов позволяет также проверить, наследует ли a класс MyClass1:

if (a->inherits("MyClass1"))
{
b = static_cast<MyClass1*>(a);
// ...
}
Мои статьи | Просмотров: 1112 | Добавил: qt-boy | Дата: 09.08.2010 | Комментарии (0)

Мои статьи | Просмотров: 735 | Author: Александр | Добавил: qt-boy | Дата: 15.12.2009 | Комментарии (0)

Мои статьи | Просмотров: 903 | Author: Александр | Добавил: qt-boy | Дата: 15.12.2009 | Комментарии (0)

                                                     Сравнение MFC и Qt

                                           Impressions on MFC vs Qt Programming 

                                                                                                       Автор Pascal Audoux 
                                                                       Исправления и добавления Philippe Fremy 
                                                                                                      Перевод Andi Peredri

После размещения этой статьи в интернете, она получила следующую критику :
Она написана не достаточно хорошо
Плохо описаны проблемы MFC
Нет примеров кода
Статья не объективна, так как Qt постоянно хвалят
Автор не проявляет глубоких знаний MFC и представляет все в ложном свете
Автор не сравнивает Qt с .NET
Хочу ответить, что написать хорошую статью не просто. Для этого потребовалось бы очень много времени, проверенных фактов, примеров кода и сравнений. Если бы у меня была такая хорошая статья, то я, вероятно, опубликовал бы ее на более профессиональных сайтах, а не на своей домашней странице.

В какой-то степени я признаю эту критику. Изначально эта статья задумывалась как небольшой обзор по программированию с помощью MFC. А в результате в ней отражено больше проблем, с которыми мы столкнулись при программировании с MFC, чем простого сравнения Qt и MFC. Но критика принимается, и моя следующая статья будет лучше.

И все же, я думаю, что представленный ниже материал по-прежнему ценен. Я не встречал ни одного сравнения MFC и Qt. Поэтому это единственное.

Philippe Fremy

Введение

Я программирую используя Qt и MFC. Поэтому мне хотелось бы поделиться с Вами своим опытом использования этих двух инструментариев.

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

Эта статья не претендует на объективность. Она - лишь результат моего личного опыта. Я не перечисляю в ней все хорошие и плохие особенности Qt и MFC. Тот факт, что мое знакомство с Qt произошло раньше, чем я стал программировать с MFC, мог также повлиять на мою объективность.
Мои статьи | Просмотров: 1275 | Author: Александр | Добавил: qt-boy | Дата: 18.10.2009 | Комментарии (1)

Qt Software (ранее известна как Trolltech и как Quasar Technologies) — компания по производству программного обеспечения, базируется в Осло, Норвегия. Компания предоставляет платформы для разработки программ и фреймворки, а также предлагает консультационные услуги.

Основной продукт — Qt, мультиплатформенный графический C++ фреймворк. В дополнение к графическому инструментарию, Qt предоставляет такие пакеты, как структуры данных и сетевые библиотеки. Популярная свободная среда рабочего стола KDE использует библиотеку Trolltech — Qt. Trolltech также предоставляет работу нескольким разработчикам KDE.

В 2001 году Trolltech представила Qtopia, основанное на Qt. Qtopia — платформа для приложений для устройств, использующих Linux, например, мобильных телефонов, музыкальных плееров и домашнего мультимедийного оборудования. Также может использоваться в продукции не для массового использования, такого как медицинское и заводское оборудование.

Компания была основана Ейриком Чамб-Энгом и Хаавардом Нордом в 1994-м году. Они начали писать Qt в 1991-м и с тех пор Qt постоянно расширялась и улучшалась. Trolltech закончила IPO на Фондовой Бирже Осло в Июле 2006-го.

28 января 2008 года Nokia объявила о покупке компании Trolltech.

http://www.trolltech.com/


Мои статьи | Просмотров: 994 | Добавил: qt-boy | Дата: 25.05.2009 | Комментарии (0)

qmake- это утилита от Trolltech, которая помогает облегчить процесс сборки приложения на разных платформах. qmake – автоматические генерирует мейк-файлы основываясь на информации в файлах проекта(*.pro). Эта программа распространяется вместе со всем комплектом Qt.


Краткое руководство

Допустим вы сделали ваше приложение, состоящие из следующих файлов:
hello.cpp
hello.h
main.cpp

Дальше вам нужно создать файл с расширением .pro, пусть это будет “hello.pro”. Pro-файлы представляют из себя текстовые файлы в которых описаны инструкции необходимые для сборки приложения. Первое что нам нужно сделать, добавить строчку, которая скажет qmake о файлах исходного кода вашей программы. Для добавления cpp-файла необходимо использовать переменную SOURCES. Просто напишите строчку с текстом “SOURCES += hello.cpp”, таким образов вы добавите в проект файл hello.cpp. Это нужно сделать для каждого файла в проекте:

SOURCES += hello.cpp
SOURCES += main.cpp

или так:

SOURCES = hello.cpp \
  main.cpp


Теперь когда файлы реализации добавлены, нужно добавить файлы заголовков. Делается похожим образом, только с помощью переменной HEADERS. В итоге в файле проекта будет следующее:

HEADERS += hello.h
SOURCES += hello.cpp
SOURCES += main.cpp

Имя и суффикс скомпилированного файла выберется автоматически, в зависимости от платформы. Если файл называется hello.pro, результатом будет hello.exe на Windows и hello в Unix. При желании задать конкретное имя, используйте переменную TARGET:
TARGET = helloworld

В завершение необходимо установить переменную CONFIG. Так как это Qt приложение, то необходимо что бы были подключены qt библиотеки и так же сгенерированы строчки для moc и uic компиляторов.

В результате файл примет вид:
CONFIG += qt
HEADERS += hello.h
SOURCES += hello.cpp
SOURCES += main.cpp

Теперь может воспользоваться qmake для генерации Makefile. Это делается вызовом в командной строке, в паке проекта следующей команды:
qmake -o Makefile hello.pro 

Результатом выполнения будет появление Makefile в папке проекта, теперь воспользовавшись make-утилитой можете собрать проект.

Для добавления отладочной информации в бинарный файл, можно использовать следующее:

CONFIG += qt debug

В процессе разработки может случится так, что вы напишите платформенно зависимый код в двух файлах hellowin.cpp и hellounix.cpp, конечно можно добавить оба фала, но нам необходимо, что бы в зависимости от платформы qmake выбирал какой из них добавлять. Для этого используется платформенно зависимые секции. Для платформы Windows это будет выглядеть так:

win32 {
  SOURCES += hellowin.cpp
}

Теперь если qmake запущен под Windows, он будет учитывать этот блок, а если на другой платформе, то просто проигнорирует. Такой вид примет файл написанный под две платформы:
CONFIG += qt debug
HEADERS += hello.h
SOURCES += hello.cpp
SOURCES += main.cpp

win32{
  SOURCES += hellowin.cpp
}
unix{
  SOURCES += hellounix.cpp
}

Можно прервать генерацию Makefile, если какого фала не хватает. Проверить наличие файла можно с помощью функции exists(), а прервать выполнение qmake используя error().

Например так:

!exists( main.cpp ) {
  error( "No main.cpp file found" )
}


Мои статьи | Просмотров: 1371 | Добавил: qt-boy | Дата: 25.05.2009 | Комментарии (1)

Qt Creator (ранее известная под кодовым названием Greenhouse) — кроссплатформенная IDE для работы с фреймворком Qt, разработанная Qt Software. Анонс проекта состоялся на Qt Developer Days в октябре 2008 года. Публичная бета-версия проекта была опубликована 30 октября 2008 года.Финальный релиз состоялся 3 марта 2009 года (вместе с выходом Qt 4.5), а исходный код доступен под лицензией LGPL.

Особенности


Сделана специально для разработчиков на Qt
Встроенный Qt Designer и Qt Assistant (+ контекстно-зависимая система помощи)
Расширяема плагинами
Имеется графический фронтенд для GDB
Для создания проектов используется qmake (планируется поддержка cmake и Makefile)

Мои статьи | Просмотров: 937 | Добавил: qt-boy | Дата: 25.05.2009 | Комментарии (0)

Библиотека разделена на несколько модулей, для четвертой версии библиотеки это:
QtCore — классы ядра библиотеки используемые другими модулями;
QtGui — компоненты графического интерфейса;
QtNetwork — набор классов для сетевого программирования. Поддержка различных высокоуровневых протоколов может меняться от версии к версии. В версии 4.2.x присутствуют классы для работы с протоколами FTP и HTTP. Для работы с протоколами TCP/IP и UDP предназначены такие классы как: QTcpServer, QTcpSocket для TCP и QUdpSocket для UDP;
QtOpenGL — набор классов для работы с OpenGL;
QtSql — набор классов для работы с базами данных используя язык структурированных запросов SQL. Основные классы данного модуля в версии 4.2.х: QSqlDatabase — класс для предоставления соединения с базой, для работы с какой-нибудь конкретной базой данных, требует объект унаследованный от класса QSqlDriver — абстрактного класса, который реализуется для конкретной базы данных и может требовать для компиляции SDK базы данных. Например, для сборки драйвера под базу данных FireBird/InterBase требует .h файлы и библиотеки статической линковки входящие в комплект поставки данной БД;
QtScript — классы для работы с Qt Scripts;
QtSvg — классы для отображения и работы с Scalable Vector Graphics(SVG) данными;
QtXml — модуль для работы с XML, поддерживается SAX и DOM модели работы;
QtDesigner — классы создания расширений QtDesigner’а для своих собственных виджетов;
QtUiTools — классы для обработки в приложении форм Qt Designer;
QtAssistant — справочная система;
Qt3Support — модуль с классами необходимыми для совместимости с библиотекой Qt версии 3.х.х;
QtTest — модуль для работы с UNIT тестами;
QtWebKit — модуль WebKit интегрированный в Qt и доступный через её классы;
QtXmlPatterns — модуль для поддержки XQuery 1.0 и XPath 2.0;
Phonon — модуль для поддержки воспроизведения и записи видео и аудио, как локально, так и с устройств и по сети;
QtCLucene — модуль для поддержки полнотекстового поиска, применяется в новой версии Assistant в Qt 4.4;
ActiveQt — модуль для работы с ActiveX и COM технологиями для Qt-разработчиков под Windows. Модуль доступен только в коммерческой редакции Qt.


Мои статьи | Просмотров: 1199 | Добавил: qt-boy | Дата: 25.05.2009 | Комментарии (0)

1-10 11-19
Форма входа
3D Облако
Мини-чат
Категории раздела
Мои статьи [19]
Облако
About Qt QList Qtractor 0.4.2 QListView git-репозиторий Qt Жасмин Бланшет QtCreator 1.1 Qt Extended Qt Solutions Динамическое приведение QObject библиотеки Qt 4.5.1 Пишем собственный веб броузер QFileDialog QMessageBox Добавление информации о версии в .e Вышли бета-версии библиотеки Qt 4.7 Qt qt quick qt sdk qtcreator Singleton для Qt QInputDialog QColorDialog Примеры использования класса QEvent QFontDialog QFileSystemWatcher следим за директ GIf Анимация в QLabel Открытие ссылки в браузере установл Открытие ссылки в браузере установл Добавление итемов в QTableWidget QMap итератор Помещаем окно посередине экрана Выставляем флаги для окон Отловить нажатие клавиши на QLabel Отловить нажатие клавиши на QLabel Определить какой именно контрол был Показать на время курсор с песочным Сделать окно модальным Зашифровать данные в MD5 или MD4 Удаление из QlistWidget строки Написание DLL на С++ Диалог открытия файла Работа с реестром Ограничение на ввод определенного к QMessageBox подтверждение удаления Многопоточный сервер на примере Чат Отправляем файл на PHP скрипт Пример пересылки от клиента к серве Алгоритм сортировки (не очень оптим но если не важна скорость то сойдет Вставка текста из буфера обмена(при Проверить существует ли файл Распечатка текста из QTextEdit Вывести текст из QTextEdit в диалог Интересное о QFileInfo Отловить событие закрытие окна Проверка веб ссылки на валидность Иконка для QPushButton Преобразовать QString в char* Выдрать IP и порт из строки Получение списка всех файлов в дире Окно поверх всех Ввод пароля в QLineEdit Ввод в QLineEdit только цифр и точк Скачать файл по Ftp Пример использования оператора fore Пример использования класса QDir Получить список папок Кодирование/Декодирвоание Base64 Получить переменные среды Оставить у диалога только кнопку за Запуск сторонней программы из Qt ис Drop Добавление эффекта выделяющего прям Получение информации о свободном пр Запись структуры(пользовательского Получение информации о свободном ди Простой пример использования QProce Как унаследоваться от QObject Отрисовать виджет по форме картинки Перемещение виджета вслед за мышкой Сделать диалог поверх всех окон/поз Повернуть изображение QSignalMapper - как пользоваться Qt приведение типа QFileSystemWatcher следим за директ Добавление сигнала clicked() в QLab Рекурсивный поиск файлов и папок QWheelEvent определить направление Отловить завершение работы системы Валидация на ввод только цифр styleSheet QLabel красим текст под styleSheet QLabel простой пример styleSheet QTableWidget красим заго styleSheet QTableWidget красим QTab QTableWidgetItem текст по центу Проверка сокета Выход из вложенных циклов styleSheet QPushButton выравнивание
Наш опрос
Оцените мой сайт
Всего ответов: 91
Поиск
Друзья сайта
  • Официальный блог
  • Сообщество uCoz
  • FAQ по системе
  • Инструкции для uCoz
  • Статистика

    Онлайн всего: 1
    Гостей: 1
    Пользователей: 0