Size: a a a

2020 April 20

K

Kate in Qt
Mr.Mait
И еще, данные 100% отправляются ?
да, я вижу как лампочки перемигиваются у себя на железки
источник

K

Kate in Qt
только как в слоумо
источник

K

Kate in Qt
Mr.Mait
После тайматуа что выведет
qDebug() << m_serial_port.error()
?
Если таймаут на дольше поставить так же данные не приходят?
Кстати, для XP можно Qt 5.6 (не помню, 5.7 или 5.6)
нельзя(  5,1 последняя версия под хп - я в документации смотрела на сайте
источник

M

Mr.Mait in Qt
Kate
нельзя(  5,1 последняя версия под хп - я в документации смотрела на сайте
источник

K

Kate in Qt
Mr.Mait
После тайматуа что выведет
qDebug() << m_serial_port.error()
?
Если таймаут на дольше поставить так же данные не приходят?
Кстати, для XP можно Qt 5.6 (не помню, 5.7 или 5.6)
сейчас посмотрю, что уеррор говорит
источник

SE

Suigintou45 E13 in Qt
Kate
нельзя(  5,1 последняя версия под хп - я в документации смотрела на сайте
можно. скомпиленный с 5.6 exe вполне работает в xp. вот qtcreator не работает в xp
источник

K

Kate in Qt
я вспомнила, почему я на 5.6 не скомпилировала
источник

K

Kate in Qt
источник

K

Kate in Qt
тамушто его ннет
источник

K

Kate in Qt
😱
источник

M

Mr.Mait in Qt
Хитро , действительно https://download.qt.io/archive/qt/5.6/5.6.3/
источник

K

Kate in Qt
источник

M

Mr.Mait in Qt
Объясните пожалуйста принцип COW.
Допустим создаю строку
QString str1("str1");
. Создаю вторую строку и копирую первую
QString str2 = str1;
Получается, что во второй строке было поверхностное копирование и в качестве данных хранит указатель буфера первой строки.
Если я допустим хочу изменить вторую строку, то тогда идет глубокое копирование буфера первой строки, потом данные изменяются. Вроде бы правильно понял.
Но. Если сделать так:
QString str1("str1");
QString str2 = str1;
str1 += "str1_test";
qDebug() << str1 << " " << str2;
Как тут str1 сообщает str2 чтоб он сделал глубокое копирование, т.к. str1 будет изменяться?
источник

AB

Artöm Bakri Al-Sarmini in Qt
Никак. str1 теряет ссылку на буффер, до этого общий для str1 и str2, и создает свой
источник

AS

Anatoly Shirokov in Qt
Mr.Mait
Объясните пожалуйста принцип COW.
Допустим создаю строку
QString str1("str1");
. Создаю вторую строку и копирую первую
QString str2 = str1;
Получается, что во второй строке было поверхностное копирование и в качестве данных хранит указатель буфера первой строки.
Если я допустим хочу изменить вторую строку, то тогда идет глубокое копирование буфера первой строки, потом данные изменяются. Вроде бы правильно понял.
Но. Если сделать так:
QString str1("str1");
QString str2 = str1;
str1 += "str1_test";
qDebug() << str1 << " " << str2;
Как тут str1 сообщает str2 чтоб он сделал глубокое копирование, т.к. str1 будет изменяться?
в реализации  += проверяется количество ссылок на представление, если больше 1, то идет копирование
источник

AS

Anatoly Shirokov in Qt
любая операция, которая может модифицировать содержит такую проверку
источник

M

Mr.Mait in Qt
Kate
Добрый день! я снова в тупике -_- памагитя. Мне надо было собрать свою вундервафлю под хп - и мне пришлось собирать под qt 5.1 вместо 5.14. и соответственно под msvc2010. Так вот в основном весь даунгрейд между версиями я сделала и оно даже собирается. Но вот с сериалпортом не работает как надо. то бишь, команда отправляется, а назад байтики не ловит. причем этот же код собранный под 5.14 работает, а под 5.1 нет. байтики ловлю так - после отправки команды делаю    
if (!m_serial_port.waitForReadyRead(msecs))
        {
            if (debug_level>=5) qDebug() <<"1000 msecs passed";
            break;
        }

        //Доступно байт для чтения
long long bytesAvailable = m_serial_port.bytesAvailable();
и вот каждый раз отваливается по таймауту - я ему даже три секунды ставила ну на всякий случай.
Попробуй сделать слот и сигнал
connect(m_serial_port, SIGNAL(readyRead()),this, SLOT(read()));
В слоте read() узнавай сколько байтов
long long bytesAvailable = m_serial_port.bytesAvailable();
источник

KT

Kathy Ti in Qt
как в ListView можно сделать так чтобы я не могла оттянуть список выше или ниже края?
источник

KT

Kathy Ti in Qt
там элементов 10 в листе
источник

K

Kate in Qt
Mr.Mait
После тайматуа что выведет
qDebug() << m_serial_port.error()
?
Если таймаут на дольше поставить так же данные не приходят?
Кстати, для XP можно Qt 5.6 (не помню, 5.7 или 5.6)
пишет неверный дескриптор, а в интернетах предлагают обновиться до 5.3
источник