Просмотр сообщений
|
Страниц: 1 [2] 3 4
|
16
|
Qt / Базы данных / Re: Qt 5.8 и MySQL драйвер
|
: Февраль 09, 2017, 13:44
|
вместо сборки соей libmysql.dll лучше возьмите уже готовую, я брал из дистрибутива OpenServer: OpenServer\modules\database\MySQL-5.7\lib\ if ( ! db.open() ) { qDebug() << db.lastError(); qDebug() << "! Mysql Error" << "Cannot open database:" << db.lastError().text(); return false; }
|
|
|
17
|
Qt / Базы данных / Re: Как лучше спроектировать при работе с пот
|
: Февраль 09, 2017, 13:34
|
для тех кто наткнулся на данный топик. Инициализацию QSqlDatabase объекта делаем один раз в конструкторе. Если планируется несколько соединений из разных потоков, для каждого потока всё такие лучше создавать отдельное именованное соединение. Соединяться с базой надо прям перед запросом (exec()) и после запроса закрывать соединение.
|
|
|
18
|
Qt / Qt Quick / Re: Что выбрать для десктопа?
|
: Февраль 09, 2017, 13:30
|
тоже недавно освоил QML, до этого тоже был опыт с Qt без QML. Сейчас сделал выбор в пользу QML. controls 2 говорит за себя сам, для лабораторных целей там по моему вообще всё идеально, регуляторы всякие и тд...
|
|
|
19
|
Qt / Базы данных / Re: Как лучше спроектировать при работе с потоками
|
: Февраль 06, 2017, 14:37
|
И всё таки переделал на работу с одним соединением. Т.к. QSqlDatabase уже синглтон, то достаточно заменить db = QSqlDatabase::addDatabase("QMYSQL"); на if (QSqlDatabase::contains(QSqlDatabase::defaultConnection)) db = QSqlDatabase::database(); else db = QSqlDatabase::addDatabase("QMYSQL"); а в заголовочном файле даже не нужен static
|
|
|
23
|
Qt / Многопоточное программирование, процессы / [РЕШЕНО] QProcess. Приложение крашится после запуска (Crashed, CrashExit)
|
: Февраль 04, 2017, 20:04
|
Приветствую всех. Имеется консольное приложение собранное из исходников. В консоле через cmd запускается, работает хорошо. Запускаю через QProcess - крашится. Отловит все сигналы что нашёл, результат: stateChanged(): QProcess::ProcessState(Starting) stateChanged(): QProcess::ProcessState(Running) started() errorOccurred(): QProcess::ProcessError(Crashed) stateChanged(): QProcess::ProcessState(NotRunning) finished(): -1073741515 QProcess::ExitStatus(CrashExit) Подскажите пожалуйста, как можно понять хотябы почему оно крашится? #include "work.h" #include <QDebug> #include <QTextStream>
Work::Work() { myProcess = new QProcess(); connect(myProcess, SIGNAL(started()), this, SLOT(started())); connect(myProcess, SIGNAL(errorOccurred(QProcess::ProcessError)), this, SLOT(errorOccurred(QProcess::ProcessError))); connect(myProcess, SIGNAL(readyReadStandardError()), this, SLOT(readyReadStandardError())); connect(myProcess, SIGNAL(readyReadStandardOutput()), this, SLOT(readStandardOutput())); connect(myProcess, SIGNAL(finished(int, QProcess::ExitStatus)), this, SLOT(finished(int, QProcess::ExitStatus))); connect(myProcess, SIGNAL(stateChanged(QProcess::ProcessState)), this, SLOT(stateChanged(QProcess::ProcessState))); createProcess1(); }
void Work::createProcess1() { QString program = "d:\\opt\\ms\\bin\\ms.exe --version";
myProcess->start(program);
myProcess->waitForStarted(3000); myProcess->waitForReadyRead(3000); myProcess->waitForFinished(100); }
void Work::finished(int exitCode, QProcess::ExitStatus exitStatus) { qDebug() << "finished(): " << exitCode << exitStatus; }
void Work::readStandardOutput() { qDebug() << "readStandardOutput(): " << myProcess->readAllStandardOutput(); }
void Work::readyReadStandardError() { qDebug() << "readyReadStandardError(): " << myProcess->errorString(); }
// http://doc.crossplatform.ru/qt/4.7.x/qprocess.html void Work::errorOccurred(QProcess::ProcessError error) { qDebug() << "errorOccurred(): " << error; }
void Work::started() { qDebug() << "started()"; }
void Work::stateChanged(QProcess::ProcessState newState) { qDebug() << "stateChanged(): " << newState; }
|
|
|
26
|
Qt / Базы данных / Как лучше спроектировать при работе с потоками
|
: Февраль 02, 2017, 12:36
|
Здравствуйте. Делаю программу, которая будет работать с mysql в многопоточном режиме, потоков может быть много и 5 и 10 и 100. В каждом потоке будет обращение на чтение/запись к базе. + обращение будет из других объектов классов. Сейчас имеется отдельный класс "mySql" (в нём устанавливается соединение с базой и прописаны все функции с запросами), экземпляр которого создаётся в рабочем классе, объект которого и помещается в поток. Но так же требуется работать с базой в других классах.
Не знаю как правильно спроектировать программу для работы с базой. Правильно ли я сделал или нет? Или лучше использовать 1 соединение (static QSqlDatabase db) на всю программу или это всё мелочи?
|
|
|
28
|
Qt / Qt Quick / Не работает Qt.openUrlExternally на Windows Phone 8.1 (Emulator)
|
: Январь 03, 2017, 22:35
|
Приветствую. Обнаружил, что на Windows Phone 8.1 (Emulator) не работает Qt.openUrlExternally - ссылка не открывается. Событие onLinkActivated отлавливается корректно, но ссылка не открывается в браузере. На windows phone 10 работает нормально. Если кому не трудно попробуйте у себя любую ссылку открыть на эмуляторе Windows Phone 8.1 или 8.0 Text { textFormat: Text.RichText text: "See the <a href=\"http://qt-project.org\">Qt Project website</a>." onLinkActivated: { console.log(link + " link activated") Qt.openUrlExternally("http://ya.ru/") } }
|
|
|
|
|