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