#include "specialdlg.h" #include "ui_specialdlg.h" #include "LoUIClass/loemptydialog.h" #include #include SpecialDlg::SpecialDlg(QWidget *parent,NetComm *p) : LoQDialog(parent), ui(new Ui::SpecialDlg) { ui->setupUi(this); pNetComm = p; m_pStackedW = new QStackedWidget; m_pSubSpecifyIp = new SubSpecifyIp(this); m_pSubSpecifyIpRange = new SubSpecifyIpRange(this); m_pStackedW->addWidget(m_pSubSpecifyIp); m_pStackedW->addWidget(m_pSubSpecifyIpRange); // ui->HLayout_IP_widget->addStretch(1); ui->HLayout_IP_widget->addWidget(m_pStackedW); // ui->HLayout_IP_widget->addStretch(); ui->RadioButtonGroup->setId(ui->radioSpecifyIpButton, 0); ui->RadioButtonGroup->setId(ui->radioSpecifyIpRangeButton, 1); ui->radioSpecifyIpButton->setVisible(false); ui->radioSpecifyIpRangeButton->setVisible(false); //绑定信号和槽函数 connect(ui->RadioButtonGroup,SIGNAL(buttonClicked(int)),m_pStackedW, SLOT(setCurrentIndex(int))); connect( ui->bnSearch,SIGNAL(clicked()),this,SLOT(OnSearch())); } SpecialDlg::~SpecialDlg() { delete m_pSubSpecifyIp; delete m_pSubSpecifyIpRange; delete ui; } void SpecialDlg::OnSearch() { int iIndex= ui->RadioButtonGroup->checkedId(); if(iIndex==0)//获取到的 { QString strTempIp=m_pSubSpecifyIp->getIp(); if(strTempIp=="...") { X_UIMsgBoxOk *dlg = new X_UIMsgBoxOk(tr("Attention"), tr("Please input IP address!"), this,0); dlg->exec(); return; } else { if (!isTextValid(strTempIp)) { //QMessageBox::warning(this, tr("Attention"), tr("Your IP Address is Invalid!"), QMessageBox::StandardButton::Ok); X_UIMsgBoxOk *dlg = new X_UIMsgBoxOk(tr("Attention"), tr("Your IP Address is Invalid!"), this,0); dlg->exec(); return; } } pNetComm->CheckSpecifyIp(strTempIp); LoEmptyDialog * pDlg = new LoEmptyDialog(this); pDlg->lock(tr("Search")+"...",tr("Success"),tr("Can't find this device IP")); connect(pNetComm, SIGNAL(sigGetSpecifyIpResponse(LedCard *)), pDlg, SLOT(close()));//显示正在保存提示对话框 // connect(pNetComm, SIGNAL(sigGetSpecifyIpResponse(LedCard *)), pDlg, SLOT(unlock()));//显示正在保存提示对话框 connect(pNetComm, SIGNAL(sigGetSpecifyIpTimerOut()), pDlg, SLOT(TimerOutUnlock()));//显示正在保存提示对话框 connect(pNetComm, SIGNAL(sigGetSpecifyIpResponse(LedCard *)), this, SLOT(OnGetSpecialIp(LedCard *)));//收到指定ip应答立即关闭本对话框 pDlg->exec(); } else if(iIndex==1) { pNetComm->CheckSpecifyIpRange("",""); } } void SpecialDlg::OnGetSpecialIp(LedCard *p) { emit sigGetSpecialIp(p); close(); }