Доброго времени суток.
В этом посте я хочу рассказать про самые, самые основы QtQuick / QML.
Я думаю можно начинать.
Самое простое это вывести словосочетание Hello World в sis с помощью командной строки.
Создайте файл hello.cpp (или возмите готовый пример):
Код:
#include #include
int main(int argc, char** argv)
{
QApplication app(argc, argv); //инициализируем приложение
QLabel *label = new QLabel("Hello World!"); //создаем лэйбл и задаем ему строку
label->show(); //показываем лэйбл
return app.exec(); //запускаем приложение на выполнение
}
1) В командной строке перейдите в папку с файлом hello.cpp
Выполняем команды:
2) qmake -project
3) qmake -makefile
4) bldmake bldfiles
5) abld build gcce urel
6) createpackage hello_template.pkg release-gcce
_________________________________________________
Если у Вас получилось выше написанное, то переходим дальше.
А дальше у нас Модули Qt.
Qt имеет модульную структуру, каждый модуль является отдельной библиотекой. В файле проекта необходимо указывать какие модули использует приложение. По умолчанию к каждому проекту подключается два основополагающих модуля: Core и Gui. Пример задания дополнительных модулей в pro-файле:
Код:
QT += xml sql
При создании консольного приложения модуль Gui необходимо исключить из проекта:
Код:
QT -= gui
Цитата:
Перечень модулей Qt для S60:
Core - Содержит набор основополагающих классов не связанных с GUI
Gui - Классы для создания графического интерфейса пользователя
SQL - Классы для взаимодействия с базами данных
XML - Поддержка XML (SAX, DOM)
XMLPatterns - Поддержка XPath и XQuery
Network - Необходимые классы для создания сетевых приложений
SVG - Классы для работы с масштабируемой векторной графикой
OpenGL - Поддержка OpenGL
Webkit - Использование "движка" WebKit для отображения веб-страниц
Script - Поддержка языка сценариев Qt Scripts
Phonon - Поддержка мультимедийного контента
_______________________________________________
Фуф... Трудный этот язык. Ну ладно осталось немного.
Преобразования
int-string - QString::number(int)
Все, а Вы что хотели код на 10-20 строк.
________________________________________________
Работа с файлами
В исходнике, где планируем работать с файлом ОБЯЗАТЕЛЬНО прописываем:
Код:
#include
Процедура записи строки в файл:
Код:
QFile file("c://test.txt");
file.open(QIODevice::Append | QIODevice::Text);
QTextStream out(&file);
out << temp;
out << "\n";
file.close();
В качестве параметра доступа к файлу могут быть (и не только):
Код:
QIODevice::ReadOnly Открыть файл для чтения
QIODevice::WriteOnly Открыть файл для записи (таким методом можно просто создать файл)
QIODevice::ReadWrite Открыть файл для чтения и записи
QIODevice::Append Открыть файл для дополнения файла в конец
Писать в файл по русски:
Код:
QTextCodec *codec = QTextCodec::codecForName("cp1251"); //создаем кодек
QTextCodec::setCodecForTr(codec); //применяем кодек к использованию русского в интерфейсе
QTextCodec::setCodecForLocale(codec);//применяем кодек к записи файлов
Считать из файла про русски:
Код: QString list;
QFile file("c:\\111.txt");
if (file.open(QIODevice::ReadOnly|QIODevice::Text))
{
list = QString::fromUtf8(file.readAll());
}
При этом важно смотреть в какой кодировке мы писали файл (или не мы). Применяем в зависимости от кодировки методы:
Код:
QString fromAscii ( const char * str, int size = -1 )
QString fromLatin1 ( const char * str, int size = -1 )
QString fromLocal8Bit ( const char * str, int size = -1 )
QString fromRawData ( const QChar * unicode, int size )
QString fromStdString ( const std::string & str )
QString fromStdWString ( const std::wstring & str )
QString fromUcs4 ( const uint * unicode, int size = -1 )
QString fromUtf8 ( const char * str, int size = -1 )
QString fromUtf16 ( const ushort * unicode, int size = -1 )
QString fromWCharArray ( const wchar_t * string, int size = -1 )
_______________________________________________________
А как же закрыть наше приложение?
Однако Вы сделали глубоко задумчивое лицо.
Да расслабтесь Вы, здесь же все легко!
qApp->quit();
_______________________________________________________
А теперь поговорим о Методах для Qt объектов
Код:
QMenu():
addMenu("Nokia"); - добавить элемент в меню
QPushButton:
setMenu(menu); - назначить меню на кнопку
setText("hello"); - назначить текст на кнопку
setIcon("c://icon.jpg"); - назначить иконку на кнопку
setDisabled(true); - деактивировать
setFlat(1); - тип отрисовки кнопки (1 - 2D, 2 - 3D)
resize(100,20); - изменить размер кнопки
QLineEdit:
setReadOnly(true); - включить\отключить Readonly
setAlignment(Qt::AlignRight); - выравнивание
setMaxLength(15); - максимально-допустимая длина строки
setFont(font); - установить шрифт
setText("Hello!"); - задать текст
show(); - показать
QWidget:
pos(); - позиция
geometry(); -
move(); -
resize(10,100); - изменить размеры
setWindowTitle("Synchronized Widgets"); - установить строку в заголовок
setLayout(layout); -
showMaximized(); - показать во все окно
QSpinBox:
setMinimum(0); - минимальное значение
setMaximum(100); - максимальное значение
QSlider:
setMinimum(0); - минимальное значение
setMaximum(100); - максимальное значение
QScrollBar:
setOrientation(Qt::Vertical); - тип
setMinimum(0); - минимальное значение
setMaximum(100); - максимальное значение
setTracking(0);
resize(60,40); - установить новый размер
setPageStep(200); - шаг
QTimer:
iTimer->setInterval(1000); - назначить интервал
start(); - старт
stop(); - стоп
QMessageBox:
setInformativeText("What do you want?"); - задание текста
setStandardButtons(QMessageBox::Ok); - создание кнопки ОК
Фуф... Вроде все.
Спасибо за внимание!