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

Войти
 
  Начало Форум WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  
  Просмотр сообщений
Страниц: [1]
1  Qt / Вопросы новичков / QPainter, перерисовка и update() из QGraphicsItem : Июнь 22, 2020, 12:13
Здравствуйте!

Для отрисовки схемы создан собственный класс: class MyClass : public QGraphicsWidget
Данные, приходящие извне, меняются, поэтому нужно перерисовывать схему каждые 5 секунд.
Есть такая штука как update(), но она из QGraphicsItem, и я не знаю, как до неё добраться.

Как мне «заиметь» этот update()? Или, может, есть какой-то другой способ перерисовки?...

Заранее спасибо.
2  Qt / Вопросы новичков / Re: Передача и получение числа одним байтом : Май 14, 2020, 13:23
Это я понимаю, спасибо большое.

Объясню: при отправке (просто socket->write(QByteArray ba)) я передаю QByteArray.
Проверяю размер того, что отправила: 4 байта всегда, хотя в QByteArray запихиваю одно число uint и отправляю его.
Откуда берётся ещё 3 байта?

А на принимающей стороне вообще не пойму: надо получить 12 байт (свой 1 байт, про который пишу выше, отправляю в качестве теста), в каждом байте записано десятичное число от 0 до 255. Но мой опять-таки QByteArray принимает это все как-то криво. Должен прийти мой тестовый 1 байт (с 12-ю байтами совсем запутаюсь), приходит опять 4 байта каких-то...
3  Qt / Вопросы новичков / Передача и получение числа одним байтом : Май 14, 2020, 12:07
Здравствуйте!

Что-то не могу сообразить, как мне передать трехзначное число (например, 255) как 1 байт?
И как его принять опять же как 1 байт?
Приём-передача по TCP/IP.

Заранее спасибо.
4  Qt / Вопросы новичков / Re: Работа с ui в другом классе : Апрель 04, 2020, 16:21
Да, соглашусь с Вами. Ну, просто как вариант был...
Может, попробую сигнал-слот.
Стыдно, но так не люблю теорию читать... Но без этого никак, конечно.
5  Qt / Вопросы новичков / Re: Работа с ui в другом классе : Апрель 03, 2020, 14:19
К сожалению, сделать все в разных классах - это одно из условий поставленной задачи...
6  Qt / Вопросы новичков / Работа с ui в другом классе : Апрель 02, 2020, 19:21
Всем здравствуйте!

Пишу клиент-серверное приложение (TCP\IP).
Проект - приложение Qt Widgets.
Для работы с сервером был создан отдельный класс Myserver : public QTcpServer.
Но возникла трудность: при приеме сервером сообщения от клиента мне нужно это сообщение обработать определенным образом и вывести, например, в lineEdit. Не понимаю, как из класса Myserver подступиться к моему ui, который в MainWindow.

Попыткой решения было создание on_dataInTextEdit() в MainWindow и последующий вызов его в Myserver в sockReady(), но не работает. Причем qDebug прописывает строку, а вот lineEdit так и остается пустым.

Кусочки кода для наглядности:

mainwindow.h
Код:
#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>
#include "myserver.h"

namespace Ui {
class MainWindow;
}

class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    explicit MainWindow(QWidget *parent = 0);
    ~MainWindow();

    Ui::MainWindow *ui;

public slots:
    void on_dataInTextEdit();

private slots:
    void on_pushButton_start_clicked();

    void on_pushButton_stop_clicked();

private:
    Myserver server;
    Myserver server1;
};

#endif // MAINWINDOW_H


myserver.h
Код:
#ifndef MYSERVER_H
#define MYSERVER_H

#include <QTcpServer>
#include <QTcpSocket>

class Myserver : public QTcpServer
{
    Q_OBJECT
public:
    Myserver ();

    QTcpSocket *socket;
    QByteArray data;

public slots:
    void incomingConnection(qintptr socketDescriptor);
    void sockReady();
    void sockDisc();
};

#endif // MYSERVER_H


mainwindow.cpp
Код:
#include "mainwindow.h"
#include "ui_mainwindow.h"

MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);
}

.......

void MainWindow::on_dataInTextEdit()
{
    ui->lineEdit->setText("text");
    qDebug()<<"on_dataInTextEdit";
}


myserver.cpp
Код:
#include "myserver.h"
#include "ui_mainwindow.h"
#include "mainwindow.h"

Myserver::Myserver()
{
}

void Myserver::incomingConnection(qintptr socketDescriptor)
{
    socket = new QTcpSocket(this);
    socket->setSocketDescriptor(socketDescriptor);
    connect(socket,SIGNAL(readyRead()),this,SLOT(sockReady()));
}

.......

void Myserver::sockReady()
{
    qDebug()<<"Socket is ready";
    data = socket->readAll();
    qDebug()<<"Data: "<<data<<"from"<<serverPort();
    MainWindow *mw = new MainWindow();
    mw->on_dataInTextEdit();
}

Если кто-нибудь знает, что не так, помогите, пожалуйста.
Спасибо.
7  Qt / Работа с сетью / Re: Слушать сервером QTcpServer 2 порта с известными номерами одновременно : Март 23, 2020, 17:04
А, оу... Смеющийся
Всё гениальное просто!
Благодарю Вас!
8  Qt / Работа с сетью / Слушать сервером QTcpServer 2 порта с известными номерами одновременно : Март 23, 2020, 15:09
Всем здравствуйте!

Есть компьютер и устройство: устройство через TCP\IP передает 2 типа данных на комп в 2 порта с известными номерами (5555 и 7777, например).
Делаю клиент-серверное приложение.

Не понимаю, как слушать сервером оба этих порта сразу.
Плюс, вот эта часть кода для запуска сервера

server.listen(QHostAddress::LocalHost, port);

путает: если в listen порт не задавать, он выберет его сам, если задавать, то смогу задать только один, а мне ведь нужно два...
Если кто-нибудь что-нибудь знает, помогите советом, пожалуйста.
Спасибо большое.

Страниц: [1]

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