2015-10-16
zelder
2015-10-20
16/10
2015

Qt Creator



Установка Qt Creator
// TODO


Qt Wdgets


// TODO

Qt Quick

Документация на сайте.
QML Viewer
apt-get install qt4-qmlviewer

QML Scene
apt-get install qmlscene

В Инструменты - Параметры - Сборка и запуск - Комплекты
Указать необходимый профиль Qt.
Так, для Qt Quick, после установки QMLScene, выбрать профиль Qt 5.3.2
Возможно потребуется перезапуск студии.


PostgreSQL

Настройка проекта.
В файле проекта .pro 
QT += sql

Проверка подключенных драйверов (приложение Qt Widgets)
Обработчик события у кнопки (слот click), при наличии на форме listWidget:
#include <QSqlDatabase>
#include <QSqlQuery>
//..
ui->listWidget->clear();
QStringList drivers = QSqlDatabase::drivers();
foreach(QString str, drivers)
{
    ui->listWidget->addItem(str);
}

Папка с библиотеками postgre
/usr/include/postgresql
Поиск папки с драйверами баз для Qt
find /usr/ -type d -name "sqldrivers"

Драйвер
Сборка драйвера
// TODO

Установка плагина PostgreSQL (вместе с драйвером) для Qt
sudo apt-get install libqt4-sql-psql

Проверка подключения драйвера.
QSqlDatabase db = QSqlDatabase::addDatabase("QPSQL");    
bool isValid = db.isValid();  
ui->label->setText(QString(isValid?"True":"False"));

Подключение и запрос (на основе статьи)
Инициализация базы
void MainWindow::InitBase()
{
    QSqlDatabase db = QSqlDatabase::addDatabase("QPSQL", "conn1");
    db.setHostName("127.0.0.1");
    db.setDatabaseName("zel");
    db.setUserName("postrges");
    db.setPassword("password");
    db.setPort(5432);
    //bool ok = db.open();
}
Запрос в базу (на основе статьи).
#include <QSqlDatabase>
#include <QSqlQuery>
...
QSqlDatabase db = QSqlDatabase::database("conn1");
if (db.open())
{
QSqlQuery query = db.exec("SELECT \"Id\", \"CreateDate\", \"Title\", \"Teaser\", \"AutorName\" FROM \"tArticle\";");
while (query.next())
{
    QString name = query.value(2).toString();
    ui->tableWidget->insertRow(0);
    ui->tableWidget->setItem(0, 0, new QTableWidgetItem(query.value(0).toString()));
    ui->tableWidget->setItem(0, 1, new QTableWidgetItem(name));
}
db.close();
}






.