Вопросы знатокам.
1: (это метод добавления одной строки в конец другой, верно?) append() используется таким вот образом:
QString str = "rock and";
str.append(" roll"); // str == "rock and roll"
В моем же примере из учебника вот так
append("Sent:" + dt.toString());
и не ясно что к чему в этом участке кода
2: Мне не понятно что и как выводит оператор
out
Т.к если убрать
<<dt
и вообще исключить из кода, оставив просто
out;
то на выходе будет просто "Sent:". Если я объявляю Qstring str = "123" и пишу out << str , вывод не меняется
3: как сделать что бы работало что-то типа такого?
out<<str;
Полный код:
void UdpServer::slotSendDatagram()
{
QByteArray baDatagram;
QDataStream out(&baDatagram, QIODevice::WriteOnly);
out.setVersion(QDataStream::Qt_5_3);
QDateTime dt = QDateTime::currentDateTime();
append("Sent:" + dt.toString());
out << dt;
m_pudp->writeDatagram(baDatagram, QHostAddress::LocalHost, 2424);
}
.cpp
#include <QtNetwork>
#include <QtGui>
#include "UdpServer.h"
// ----------------------------------------------------------------------
UdpServer::UdpServer(QWidget* pwgt /*=0*/) : QTextEdit(pwgt)
{
setWindowTitle("UdpServer");
m_pudp = new QUdpSocket(this);
QTimer* ptimer = new QTimer(this);
ptimer->setInterval(500);
ptimer->start();
connect(ptimer, SIGNAL(timeout()), SLOT(slotSendDatagram()));
}
// ----------------------------------------------------------------------
void UdpServer::slotSendDatagram()
{
QByteArray baDatagram;
QDataStream out(&baDatagram, QIODevice::WriteOnly);
out.setVersion(QDataStream::Qt_5_3);
QDateTime dt = QDateTime::currentDateTime();
append("Sent:" + dt.toString());
out << dt;
m_pudp->writeDatagram(baDatagram, QHostAddress::LocalHost, 2424);
}
.h
#pragma once
#include <QTextEdit>
class QUdpSocket;
// ======================================================================
class UdpServer : public QTextEdit {
Q_OBJECT
private:
QUdpSocket* m_pudp;
public:
UdpServer(QWidget* pwgt = 0);
private slots:
void slotSendDatagram();
};