Russian Qt Forum
Декабрь 07, 2019, 13:53 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало Форум WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  
  Просмотр сообщений
Страниц: [1] 2 3 4
1  Qt / Вопросы новичков / Re: QSerialPort Искажение данных : Декабрь 05, 2019, 19:15
И еще добавлю, если известна скорость поступления запросов, читать можно по таймеру все порты махом. Не дожидаясь сигнала. Существенно сократиться кол-во вызовов.
2  Qt / Вопросы новичков / Re: QSerialPort Искажение данных : Декабрь 05, 2019, 19:11
Ну если помогло чтение размера. То явно затык в скорости.
Изменить алгоритм работы, как вариант, поместить чтение в отдельные процессы/потоки.
Не известно как там Qt обрабатывает прием данных а точнее синхронизацию.
Возможно по пробовать читать/писать другой библиотекой. Qt это прикладной уровень. (хотя в данном случае - это вряд-ли.)
И скорость 9600 маловато будет, 10мс это что? микро- или мили- секунды? Если микро - маловато.
1/10Е-6=100 000 байт по одному байту. без служебной информации - только на прием.
1/10Е-3=100 байт в секунду без служебной информации только на прием.
Какая операционная система, возможно общий драйвер не подразумевает такой пропускной способности. С чем-то подобным под форточками сталкивался - только не помню с чем и как победили.

Еще: не пытаться обрабатывать сразу, сделать очередь. Читать все одним процессом а обрабатывать другим.

PS: если запросы поступают на несколько портов. И приходит запрос на другом порту пока идет обработка, слот для нового запроса не вызываться, а когда вызывается то там уже пришло больше одного запроса.
т.е. проблема чтения. - решение очередь.

3  Qt / Вопросы новичков / Re: QSerialPort Искажение данных : Декабрь 04, 2019, 18:55
Как вариант: проверить инициализацию порта, скорость и т.п.
Как вызывается чтение порта?
По частоте прерываний нет затыка.... 10 мс это хорошая частота. т.е. это 115к  минимум.

Попробовать, как вариант, "многопортовку" натравить на первые 5 портов, и в это же время однопортовый вариант на последний.

Это на вскидку.
4  Qt / Вопросы новичков / Re: QSqlQuery & SELECT EXISTS : Октябрь 11, 2019, 17:42
Всем привет. Помогите пожалуйста найти ошибку в SELECT EXIST. Не могу пройти проверку value.

QSqlQuery query;

QString strF = QString("SELECT EXISTS (SELECT " DEVICE_ORIG " FROM " DEVICE " WHERE ( " DEVICE_ORIG " = '%1' ) AND id NOT LIKE '%2' )");
QString str = strF.arg(ui.lineEdit->text(), model->data(model->index(mapper->currentIndex(), 0), Qt::DisplayRole).toString());

query.prepare(str);
query.exec();
query.next();

// Если запись существует, то диалог вызывает предупредительное сообщение
if (query.value(0) != 0)
{
    QMessageBox::information(this, trUtf8("Error"), trUtf8("Such a log or comment already exists"));
}


И еще
query.prepare("SELECT EXISTS (SELECT " DEVICE_ORIG " FROM " DEVICE " WHERE ( " DEVICE_ORIG " = :device_orig) AND id NOT LIKE :id; )"); 
query.bindValue(":device_orig", ui.lineEdit->text());
query.bindValue(":id", model->data(model->index(mapper->currentIndex(), 0), Qt::DisplayRole).toString());
query.exec();
.....

// скобочки не считал, мог немного напутать с их соответствием.
5  Qt / Вопросы новичков / Re: QSqlQuery & SELECT EXISTS : Октябрь 11, 2019, 17:33
query.value(0).toInt()!=0
А лучше
if(query.value(0).toBool()){...}

Или вообще без exist;
if(query.next()){
// запись существует.
}
6  Qt / Qt-инструментарий / Re: Проблема с Qt Creator новых версий : Август 11, 2019, 01:13
http://www.prog.org.ru/topic_10224_0.html
см. конец поста.
7  Qt / Общие вопросы / Re: connect сигналы и слоты=( : Август 10, 2019, 12:56
Отвечаю: они изменили методику вызова.

https://wiki.qt.io/New_Signal_Slot_Syntax

Старая модель:
connect(
    sender, SIGNAL( valueChanged( QString, QString ) ),
    receiver, SLOT( updateValue( QString ) )
);

Новая модель:

connect(
    sender, &Sender::valueChanged,
    receiver, &Receiver::updateValue
);

И тогда подсказывает.

Или как вариант:
запретить Help > About Plugins > Clang Code Model
8  Qt / Общие вопросы / Re: connect сигналы и слоты=( : Август 10, 2019, 12:26
Только что обратил внимание Creator 4.9.2.
То-же не подсказывает.
Никогда не обращал внимание. Улыбающийся

Может потому не подсказывает, что пишу на Qt4....
Была замечена проблема подсказок у Creator'a при использовании namespace,
времени разбираться не было и не стал заморачиваться а потом забыл.

Надо попробовать чистый project сгенерить.

Добавлено:
По пробовал:
1. Проблема не в namespaces.
2. Проблема не в версии QT.
Надо будет разобраться.

9  Qt / Установка, сборка, отладка, тестирование / Драйвера для postgresql 11.4 для qt4. : Июль 20, 2019, 06:35
Собственно вопрос:
А существует ли Subj?
Дело в том, что в Qt 4.8.7 - libqsqlpsql.so поддерживает сервер до 9-й версии включительно (понятно что после сброрки и т.п.), версии выше с Warning'ами.
Может где есть вариант драйверов для 4-й qt с поддержкой свежих версий postgresql.

Пока подкрутил ручками версии в исходниках, и чуток реализации (из qt5 взял подробности), вроде ожил.
Но когда грохнется не известно.
Может кто знает, в природе существует полноценная реализация?

PS: гугление ни к чему ни привело. :)
PS: сравнивая исходники дров для qt5 там не только отличия номеров версий.


Да, совсем забыл написать:
1. Интересует ответ только на заданный вопрос.
2. Предложения переходить/оставаться на версию .... не интересуют.
3. Не знаете что сказать: выберите для флейма другую тему.


10  Qt / Qt Quick / Re: Тупит QML на примитивном коде - что ему еще надо? (С видео) : Декабрь 05, 2018, 16:53
Для начала:
1. Какая версия Qt?
2. Как это окно визуализируется?
что-то типа main.cpp?Непонимающий

От себя:
С таким main.cpp
//
#include <QGuiApplication>
#include <QQmlApplicationEngine>

int main(int argc, char *argv[])
{
    QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling);
    QGuiApplication app(argc, argv);

    QQmlApplicationEngine engine;
    engine.load(QUrl(QLatin1String("qrc:/main.qml")));

    return app.exec();
}
//------------------------------
2. версия qt - 5.7.0

Без проблем, Ваш код работает как и ожидается и ничего не глючит.

сразу забыл упомянуть:
Slackware 14.2 Linux v 4.17.8 #2 SMP Thu Nov 8 13:20:53 EET 2018 x86_64 Intel(R) Core(TM) xxxx CPU @ x.00GHz GenuineIntel GNU/Linux
dm: xfce 4.12
video: NVIDIA 1030
11  Qt / Работа с сетью / Re: Правильная архитектура сервера/клиента : Ноябрь 14, 2018, 13:38
Поглядываю на этот тред и удивляюсь, сколько "экспертов" обсуждают "сферический клиент-сервер в вакууме".
О задаче ничего не известно, но обсуждений ......
12  Программирование / Базы данных / Re: Мистика с PostgreSQL с оператором AND : Ноябрь 08, 2018, 16:39
Значит

ColumnName LIKE '%T%'

Не один символ. Может в хвосте перевод строки - невидимый или чего-то подобное.
13  Программирование / Базы данных / Re: Мистика с PostgreSQL с оператором AND : Ноябрь 08, 2018, 02:30
Не знаю, что у Вас там происходит но:

create table pColumn(TableName text, ColumnName text);
CREATE TABLE
insert into pColumn values('R','T');
INSERT 0 1
insert into pColumn values('R','T');
INSERT 0 1
insert into pColumn values('R','T');
INSERT 0 1
SELECT * FROM pColumn WHERE TableName = 'R' AND ColumnName = 'T';
 tablename | columnname
-----------+------------
 R         | T
 R         | T
 R         | T
(3 rows)

14  Qt / Вопросы новичков / Re: Пользовательский виджет (плагин)в Qt Designer : Декабрь 06, 2017, 21:04
QString QDesignerCustomWidgetInterface::includeFile() const;
Должен вернуть строку содержащую имя .h файла.

QDesignerCustomWidgetInterface это то от чего порождаете ваш плагин....  
Думаю понятно.

Добавлено:
И еще, не знаю где под форточками лежат заголовочные файлы но под linux у меня /usr/include
А не стандартное место указывается дополнением в .pro файл:
INCLUDEPATH += .... где-то там
15  Qt / Вопросы новичков / Re: Пользовательский виджет (плагин)в Qt Designer : Декабрь 06, 2017, 09:19
Рекомендую взять книгу и почитать.

На данном этапе скажу несколько, даже не знаю как назвать, советов/утверждений.

1. Виджет в дизайнере состоит из:
1.1. Заголовочного файла .h
1.2. Библиотеки (в вашем случае dll) реализующий сам виджет.
1.3. И собственно плагина для дизайнера (dll) дающему абстрактный доступ к виджету из п.1.2 и порожденному от QDesignerCustomWidgetInterface

2. При запуске дизайнер находит все плагины (в т.ч. созданные в п.1.3)
3. Когда вы ставите его на форму - дизайнер знает через плагин из п.1.3 как создать виджет из п.1.2.
4. Вы сохраняете виджет в файл ui.

5. Вы подключаете виджет к своему приложению и в этот момент для доступа к свойствам нужно подключить .h файл иначе компилятор не узнает о именах свойств/методов вашего плагина. (тут возможны варианты т.к. о существовании .h файла дизайнер знает) посмотрите файлы созданные moc препроцессором для понимания там уже есть подключение вашего h файла.
6. Вы в .pro или подобный файл приложения подключаете библиотеку т.к. для линковщика надо указать с чем линковать.

Компилируем, собираем, радуемся.

Если коротко - как-то так.
Страниц: [1] 2 3 4

Страница сгенерирована за 0.057 секунд. Запросов: 23.