Просмотр сообщений
|
Страниц: 1 [2] 3 4 ... 66
|
17
|
Qt / Работа с сетью / Re: QUdpSocket + пакеты большого размера.
|
: Апрель 29, 2014, 09:36
|
quint64 t1 = curTime.elapsed(); if(t1 >= t0 + 1000) { std::cout << "Передано " << byteCnt << " за 1 с." << std::endl; // если прошла 1 секунда - выводим кол-во переданных байт byteCnt = 0; } Вы тут t0 = t1; не потеряли? А то, насколько я понимаю код, после 1 секунды лог будет выводиться на каждой итерациии, что вполне может тормозить передачу.
|
|
|
18
|
Qt / Работа с сетью / Re: QUdpSocket + пакеты большого размера.
|
: Апрель 28, 2014, 23:01
|
QByteArray packet; QUdpSocket *udpSocket = new QUdpSocket(this); while(udpSocket->writeDatagram(packet.data(), packet.size(), QHostAddress("192.168.13.1"), 3333) == -1); Может побольше кусок кода дадите? В принципе вполне возможно, что из цикла вываливаетесь и что дальше происходит - не понятно. Ну и кроме QHostAddress("192.168.13.1") - заменить на константу / переменную. Иначе каждый раз разбор адреса происходит из сторки. А packet.data() => packet.constData() - так быстрее. Или вообще в пользу массива char посмотреть. В общем советую по профилировать - совсем не факт, что тормозит именно сокет. P.S. Может быть стоит вызывать waitForBytesWritten, а может наоборот хуже сделает, не знаю.
|
|
|
20
|
Qt / Общие вопросы / Re: Новый connect Qt 5 - другая таблица соединений?
|
: Апрель 15, 2014, 14:05
|
Я это использовал в своем фреймворке для того, чтобы узнавать, с какой стороной объекта установлено соединение, с передатчиком или с приемником. QObject::connectNotify, QObject::disconnectNotify, QObject::isSignalConnected - ничто из этого вашу проблему не решит?
|
|
|
21
|
Qt / Мультимедиа / Re: Wav => pcm
|
: Апрель 02, 2014, 22:08
|
Впрочем, не зная толком задачи лезть с советами не буду Просто речь, данные целиком, скорость (в разумных пределах) не критична.
|
|
|
23
|
Программирование / С/C++ / Re: Вызов private virtual метода
|
: Март 30, 2014, 10:52
|
Не понял, макрос SLOT вообще разворачивает в строку, какой дядя? Ну это же вопрос реализации во что он разворачивается. Я в данном коде для себя вижу нарушение «приватности» - мы адресуем приватный слот вне класса: QObject::connect( &a, SIGNAL( sA() ), &b, SLOT( sB() ) ); то во что оно там под капотом Qt разворачивается дело 10-ое. Логически аналогичный код с новой (Qt5) нотацией, например, вообще не соберётся: QObject::connect( &a, &A::sA, &b, &B::sB ); Но тут вопрос скорее в идеологии Qt. Зачем слот вообще можно делать приватным?Если просто что бы его нельзя было вызвать как функцию, то всё OK, а если что бы слот был доступен только внутри класса (а у меня такие потребности возникали), то это не работает в старой нотации.
|
|
|
24
|
Qt / Мультимедиа / Wav => pcm
|
: Март 30, 2014, 00:20
|
Есть потребность получить из произвольного wav-файла звуковые данные в определённом формате (PCM, mono, 8кГц). В принципе формат wav-файла не сложный, так что (особенно если ограничить число поддерживаемых кодеков) прочитать звуковые данные можно. Даунмикс каналов и ресемплинг тоже реализовать можно своими силами, но есть явное ощущение что это велосипед. Может быть подскажете готовые решения в виде библиотек или исходных кодов?
|
|
|
25
|
Программирование / С/C++ / Re: Вызов private virtual метода
|
: Март 29, 2014, 15:37
|
нет, public/private - это реализация одного из фундаментальных принципов, инкапсуляции. Но из-за того, что С++ решил быть расширенным Си, всё оказалось довольно криво и обходимо Не думаю, что в этом дело. Java вроде бы изначально планировалась как высокоуровневый ОЯП, что не спасает её от своего Public'а Морозова. Ну и вообще что тут может сделать компилятор, кроме как вызвать A::Print? Запретить ослабление доступа для виртуальных функций на этапе компиляции? Бросить исключение/упасть на этапе исполнения? Igors, а как вы оцениваете плохость/безыдейность Qt: C++ (Qt) class A : public QObject { Q_OBJECT public: void emitSignal() { emit sA(); } signals: void sA(); }; class B : public QObject { Q_OBJECT private slots: void sB() { qDebug( "B" ); } }; int main(int argc, char *argv[]) { A a; B b; QObject::connect( &a, SIGNAL( sA() ), &b, SLOT( sB() ) ); a.emitSignal(); }
|
|
|
29
|
Qt / Работа с сетью / Re: Не всегда приходят данные QTCpSocket
|
: Февраль 26, 2014, 09:32
|
Вы в курсе, что TCP - это протокол потоковой передачи данных и никак не гарантирует сохранения границ пакетов (может склеивать или нарезать их по своему усмотрению)? То есть например вы быстро отсылаете 5 своих маленьких пакетов, TCP упаковывает их все в 1 пакет и сигнал readyRead() будет всего 1 (и все данные сразу доступны).
|
|
|
30
|
Qt / Базы данных / Re: QODBC и кодировки
|
: Февраль 19, 2014, 07:32
|
На 4й версии Qt все работало, а на 5й такая беда. А на 4-ой как оно работало? Просто в вашей программе 1251 стояло или в чём разница?
|
|
|
Страниц: 1 [2] 3 4 ... 66
|
|
|