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

Войти
 
  Начало Форум WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  
  Просмотр сообщений
Страниц: 1 [2] 3 4 ... 6
16  Qt / Model-View (MV) / Re: QTableView: переключение элементов Tab'ом : Июль 05, 2018, 23:06
тут я бы сделал eventFilter на уровне MainWindow
http://www.linuxcenter.ru/lib/books/qt3/qt3_11.phtml?style=print
пример старый но суть та же
17  Qt / Пользовательский интерфейс (GUI) / Re: Определение текущей ячейки в QTableView : Июль 05, 2018, 12:30
Зачем для контекстного меню текущая ячейка?
чтобы копировать текст
Код
C++ (Qt)
   int row = view->indexAt(pos).row();
   int col = view->indexAt(pos).column();
qDebug() << view->model()->index(row,col).data().toString();
 
18  Qt / Пользовательский интерфейс (GUI) / Re: Определение текущей ячейки в QTableView : Июль 05, 2018, 09:24
определи по event->pos()
Код
C++ (Qt)
void Widget::customMenuRequested(QPoint pos){
   QModelIndex index=table->indexAt(pos);
   QMenu *menu=new QMenu(this);
   menu->addAction(new QAction("Action 1", this));
   menu->addAction(new QAction("Action 2", this));
   menu->addAction(new QAction("Action 3", this));
   menu->popup(table->viewport()->mapToGlobal(pos));
19  Qt / Работа с сетью / Re: Сквозная передача данных через сервер. : Июнь 27, 2018, 20:24
вот простой пример
Код
C++ (Qt)
   QByteArray ba;
   QDataStream s(&ba,QIODevice::ReadWrite);
   ba += "\n\n\n\n\n\n\n\r";
   QVector<double> v;
   v.fill(-10,10);
   s.device()->seek(8);
   s << v;//serialization
   v.clear();
   ba += "\n\n\n\n\n\n\n\r";
   QByteArray b,a;
   a = ba.left(8);
   b = ba.right(8);
   qDebug() << a << b;
   s.device()->seek(8);
   s >> v;//deserialization
   qDebug() << v << v.size();
 
20  Qt / Работа с сетью / Re: Сквозная передача данных через сервер. : Июнь 27, 2018, 03:39
Я так и не решил проблему пересылки в общем виде. По этому решил вместо держания на сервере всех пересылаемых классов. Создать структуры с нужными типами данных, а в пакете после размера посылать указатель какую структуры для десериализации использовать. Громоздкость несколько уменьшилась, но проблема в основе осталась.
по сети вы передаете байты и транспорту не важно, что внутри пакета.
я бы сделал по типу Ethernet - преамбула + контр. сумма
http://samoychiteli.ru/document33155.html
или преамбула начала (16 байт к примеру) и маркер конца пакета(16 байт )
читаете первые и последние байты из ByteArray и все
для сериализации в инете обычно json
есть и для qt
https://habr.com/post/147952/
21  Qt / Работа с сетью / Re: QTcpSocket скорость приема данных. : Июнь 17, 2018, 01:37
Почему нельзя в потоке сокета делать readAll и отдавать "наверх" для разбора на нужные куски?
Смысл for-а какой здесь?
+1 ТС уже говорили неоднократно
22  Qt / Работа с сетью / Re: QTcpSocket и QThread : Июнь 13, 2018, 18:40
интересно что  получилось с буфером, что-то я не знаю такой вариант  Непонимающий
23  Qt / Работа с сетью / Re: QTcpSocket и QThread : Июнь 10, 2018, 14:19
а звчем это? в Loopback Example у меня на локалхосте скорость 200 МВ/с, если с внешним сервером не поднимается - канал передачи данных тормозит
24  Qt / Работа с сетью / Re: QTcpSocket и QThread : Июнь 09, 2018, 21:21
потоки не помогут - проволока одна
как вариант создать отдельный тред, который будет заниматься только запросом - ответом и писать в общий буфер, а в основном треде из буфера читать и рисовать. тут можно поделить задачу по ядрам процессора. типа так
http://www.bogotobogo.com/Qt/Qt5_QTcpServer_QThreadPool_Multithreaded_Client_Server.php
или как в network/Loopback Example  
25  Qt / Работа с сетью / Re: QTcpSocket и QThread : Июнь 09, 2018, 12:07
ну да, под винду надо WinSock подключать
https://studfiles.net/preview/1551127/page:2/
26  Qt / Работа с сетью / Re: QTcpSocket и QThread : Июнь 08, 2018, 23:46
как то ты странно пишешь
Код
C++ (Qt)
   socket->write('A');
 
делай краш тест на Си, без таймеров
Код
C
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <string.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netdb.h>
 
void error(const char *msg)
{
   perror(msg);
   exit(0);
}
 
int main(int argc, char *argv[])
{
   int sockfd, portno;
   struct sockaddr_in serv_addr;
   struct hostent *server;
 
   char buffer[256];
   if (argc < 3) {
       portno = 8000;
       server = gethostbyname("localhost");
   }
   else {
       portno = atoi(argv[2]);
       server = gethostbyname(argv[1]);
   }
   sockfd = socket(AF_INET, SOCK_STREAM, 0);
   if (sockfd < 0) {
       error("CLI SOCKET");
   }
   if (server == NULL) {
       error("CLI SERVER");
   }
   bzero((char *) &serv_addr, sizeof(serv_addr));
   serv_addr.sin_family = AF_INET;
   bcopy((char *)server->h_addr, (char *)&serv_addr.sin_addr.s_addr,server->h_length);
   serv_addr.sin_port = htons(portno);
   if (connect(sockfd,(struct sockaddr *) &serv_addr,sizeof(serv_addr)) < 0) error("CLI CONNECT");
   while (1) {
       printf("<< ");
       bzero(buffer,256);
       fgets(buffer,255,stdin);
       if (strspn("quit",buffer) == 4) {
           close(sockfd);
           return 0;
       }
       if (send(sockfd,buffer,255,0) < 0) error("CLI WRITE");
       bzero(buffer,256);
       if (recv(sockfd,buffer,255,0) < 0) error("CLI READ");
       fprintf(stderr,">> %s",buffer);
   }
   close(sockfd);
   return 0;
}
 
27  Qt / Работа с сетью / Re: QTcpSocket и QThread : Июнь 08, 2018, 21:45
там arm-linux только IDE под WIN
я имею в виду клиента на чем пишешь
28  Qt / Работа с сетью / Re: QTcpSocket и QThread : Июнь 08, 2018, 14:07
ну это врят ли, скорее через 250-500 мс чего-то там подстраивается. не знаю на чем ты пишешь, я на линухе делал замеры как-то - время реакции ядра на приход данных (poll) - 5 мс. так что обломись сразу  Шокированный реально не менее 10мс депать. быстрее будут тока сборки типа роутеров, это их основная функция.
http://static1.ozone.ru/multimedia/book_file/1003560303.pdf
в этой книге про сокеты неплохо написано 
29  Qt / Работа с сетью / Re: QTcpSocket и QThread : Июнь 08, 2018, 02:00
посылать запрос на следующий пакет только после приема и проверки текущего.
вообще если тебе надо гнать цифру тут tcp и не нужен особо, я на udp делал, проще получается.
а тестировал массивом - гнал массив например 40000 байт, его зеркалил обратно и сравнивал
только я 2 сокета использовал - прием и передачя
30  Qt / Работа с сетью / Re: QTcpSocket и QThread : Июнь 07, 2018, 18:16
у тебя однопоточный сервак, зачем тебе многопоточный клиент?
вангую что железка работает на прерываниях и ты не дожидаешься окончания передачи пакета и даешь команду на передачу нового пакета
посмотри рабочий пример
Страниц: 1 [2] 3 4 ... 6

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