Conectamos el valor producido por el QSlider al valor mostrado en el QLCDNumber y configuramos los valore máximos y mínimos del QSlider a los valores de puerto máximo y mínimo respectivamente.
const quint16 EchoClient::PORT_MIN = 1;
const quint16 EchoClient::PORT_MAX = 65535;
const quint16 EchoClient::PORT_DEFAULT = 8888;
...
void EchoClient::setuid()
{
setAttribute(Qt::WA_DeleteOnClose);
connect(ui->pbSend, SIGNAL(clicked()),SLOT(onClickSend()));
connect(ui->sldPort, SIGNAL(valueChanged(int)), ui->lcdPort, SLOT(display(int)));
ui->sldPort->setMinimum(EchoClient::PORT_MIN);
ui->sldPort->setMaximum(EchoClient::PORT_MAX);
ui->sldPort->setValue(EchoClient::PORT_DEFAULT);
}
Por último en la función de enviar cogemos el valor del puerto del QLCDNumber y lo enviamos al host especificado en el QLineEdit.
void EchoClient::onClickSend()
{
qDebug("onClickSend");
QHostInfo info = QHostInfo::fromName(ui->leServerName->text());
if (!info.addresses().isEmpty())
{
QHostAddress address = info.addresses().first();
QByteArray ba = ui->leText->text().toLocal8Bit();
const char *txt = ba.data();
qint16 len = ui->leText->text().length();
qint16 port = ui->sldPort->value();
QUdpSocket *udp =new QUdpSocket(this);
udp->writeDatagram(txt, len, address, port);
delete udp;
} else
{
QMessageBox msgBox;
msgBox.setWindowTitle(tr("Error"));
msgBox.setText(tr("Error host not found"));
msgBox.setIcon(QMessageBox::Critical);
msgBox.setStandardButtons(QMessageBox::Ok);
msgBox.exec();
}
}
Para descargar esta versión:svn checkout http://infobasic.googlecode.com/svn/tags/infobasic-0.0.2 infobasic-read-only
No hay comentarios:
Publicar un comentario