Russian Qt Forum
Май 05, 2024, 14:59 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало Форум WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  
  Просмотр сообщений
Страниц: 1 [2] 3 4 ... 66
16  Qt / Работа с сетью / Re: Qt FTP как узнать путь к текущей папке : Март 30, 2015, 16:15
Можете попробовать
Код:
ftp.rawCommand("PWD");
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, а может наоборот хуже сделает, не знаю.
19  Qt / Общие вопросы / Re: рандомные SIGSEGV в QT в разных местах... : Апрель 21, 2014, 10:24
Ну не видя вашего кода можно только гадать.

У нас, например, недавно программа падала в ~QString().
После довольно долгих поисков наши #pragma pack (push, 1) без парного #pragma pack (pop).
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
Впрочем, не зная толком задачи лезть с советами не буду
Просто речь, данные целиком, скорость (в разумных пределах) не критична.
22  Qt / Мультимедиа / Re: Wav => pcm : Апрель 02, 2014, 10:56
libsndfile http://www.mega-nerd.com/libsndfile/ - чтение и конвертация форматов
Спасибо, остальное, пожалуй сам напишу.
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();
}
 
26  Qt / Общие вопросы / Re: Классы на чистом C++ или Qt-way? : Март 18, 2014, 07:58
А вот что такое Qt-формат?
Ну что-то в этом духе: http://qt-project.org/doc/qt-5/datastreamformat.html
Хотя и для тех же xml/json в Qt средства имеются.
27  Qt / Общие вопросы / Re: Тренировка навыков быстрого программирования : Март 05, 2014, 16:18
Собственно:
Variables and functions start with a lower-case letter. Each consecutive word in a variable’s name starts with an upper-case letter
28  Qt / Работа с сетью / Re: Непонятки с QTcpSocket : Март 03, 2014, 09:29
Как вариант - 33 ваших пакета.  Подмигивающий
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

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