哈哈,这个问题解决了,是在Qt Example中找到了一个例子(screenShot),先声明一个槽函数,在槽函数中完成你所要执行的事件,在调用m_listRefreshBtn->setDisabled(true)后不马上执行你所要执行的动作,而是建立一个信号与槽的连接,QTimer::singleShot(1000,this,SLOT(enableButtons()));意思是在1s后执行槽函数enableButtons。所以以上代码将会被修改成了下面的代码,
void listInforDlg::on_m_listRefreshBtn_clicked()
{
qDebug()<<"clicked 'Refresh' button in the scan list page";
qDebug()<<"Disabled 'Refresh' button.";
m_listRefreshBtn->setEnabled(false);
qDebug()<<"Disabled 'Next' button";
m_listNextBtn->setEnabled(false);
QTimer::singleShot(1000,this,SLOT(enableButtons()));
}
void listInforDlg::enableButtons()
{
devList = dev.getAllDevices();
updateTreeWidget(devList);
}
最后在updateTreeWidget(devList)中最后调用
m_listRefreshBtn->setEnable(true);
m_listNextBtn->setEnable(true);
Enable Refresh与Next两个Button