Pull to refresh

Самые основы QtQuick / QML

Доброго времени суток.


В этом посте я хочу рассказать про самые, самые основы 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); - создание кнопки ОК


Фуф... Вроде все.
Спасибо за внимание!
Tags:
Hubs:
You can’t comment this publication because its author is not yet a full member of the community. You will be able to contact the author only after he or she has been invited by someone in the community. Until then, author’s username will be hidden by an alias.